Knucklehead пытается перенаправить с помощью регулярного выражения mod_write - PullRequest
0 голосов
/ 08 января 2012

У меня чертовски много времени, чтобы заставить это сотрудничать.В основном я пытаюсь перенаправить каналы своего сайта в Feedburner, но я не хочу, чтобы какие-либо URL каналов с параметрами на них перенаправляли.

Например:

mysite.com/feed/ следует перенаправить наhttp://feeds.feedburner.com/mysite

Но этот URL не должен перенаправлять:

mysite.com/feed/?post_type=custom

Сейчас второй URL перенаправляется на http://feeds.feedburner.com/mysite?post_type=custom, и это проблематично.Я хочу, чтобы этот URL остался нетронутым.Любой URL, который имеет?после того, как / feed / нужно оставить в покое.

Вот мой код:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/mysite [R=302,NC,L]
</IfModule>

Я поиграл с RewriteRule, но не смог заставить его сотрудничать.Я пытался сделать Negative Lookahead для вопросительного знака, но это ничего не изменило.

Причина, по которой ([_0-9a-z-]+)? используется, заключается в том, что WordPress создает как 5 различных каналов .

Заранее спасибо за любую помощь.Я чувствую себя как дурачок, так как пару месяцев назад я был сильно увлечен регулярными выражениями, и теперь я не могу этого сделать.

1 Ответ

1 голос
/ 08 января 2012

Знак вопроса в URL не сопоставляется в RewriteRule, так как он сопоставляется с REQUEST_URI, а не с QUERY_STRING.Если вы не хотите перенаправлять при наличии строки запроса, вы можете просто добавить RewriteCond% {QUERY_STRING} ^ $

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteCond %{QUERY_STRING} ^$
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/mysite [R=302,NC,L]
</IfModule>

Тогда он будет перенаправлен только в том случае, если строка запроса пуста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...