如何为 Yahoo Pipes 添加 mod 重写例外?

如何为 Yahoo Pipes 添加 mod 重写例外?

我使用 Feedburner 并重定向了我的 WordPress 源。我想为 Yahoo Pipes 2.0 用户代理添加例外,但用户代理字符串包含空格。当我用引号括起来时,我收到 apache 配置测试失败。

规则如下。

# BEGIN Feedburner
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(feed|wp-atom|wp-feed|wp-rss|wp-rdf|wp-commentsrss)(.+)\ HTTP/ [NC,OR]
RewriteCond %{QUERY_STRING} ^feed [NC]
RewriteCond %{HTTP_USER_AGENT} !^(FeedBurner|FeedValidator) [NC]
RewriteCond %{HTTP_USER_AGENT} !^"Yahoo Pipes 2.0" [NC]
RewriteRule .* http://feeds.feedburner.com/xxxxxxx [R=307,L] 
</IfModule>
# END Feedburner

这是我尝试重新加载 apache 时收到的错误。此外,规则位于 vhost 中,因为我使用的是 WordPress 多站点,如果我将其放入 .htaccess 中,我的所有站点提要都会重定向到此站点的 Feedburner。

Syntax error on line 46 of /etc/apache2/sites-enabled/xxxxxxx:
RewriteCond: bad flag delimiters
Action 'configtest' failed.
The Apache error log may have more information.
 failed!

答案1

我已经找到答案了,并把答案留在这里。

HTTP_USER_AGENT 条件检查任何单词的匹配,所以我只需要添加 Yahoo 而不是“Yahoo Pipes 2.0”。

正确的规则是:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(feed|wp-atom|wp-feed|wp-rss|wp-rdf|wp-commentsrss)(.+)\ HTTP/ [NC,OR]
RewriteCond %{QUERY_STRING} ^feed [NC]
RewriteCond %{HTTP_USER_AGENT} !^(FeedBurner|FeedValidator|Yahoo) [NC]
RewriteRule .* http://feeds.feedburner.com/xxxxxxx [R=307,L] 
</IfModule>

相关内容