2012-01-08 8 views
-1

私は時間をかけて協力しています。基本的には私のサイトのフィードをFeedburnerにリダイレクトしようとしていますが、リダイレクトするパラメータを持つフィードURLは必要ありません。例えばmod_write正規表現でリダイレクトしようとしたKnucklehead

mysite.com/feed/http://feeds.feedburner.com/mysite

にリダイレクトする必要があります。しかし、このURLはリダイレクトしないでください。

mysite.com/feed/?post_type=custom

を今2番目の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で遊んが、私はそれが協力してもらうことができませんでした。私は疑問符のために否定的な先読みを試みましたが、何も変更しませんでした。

([_0-9a-z-]+)?が使用される理由は、ワードプレスが5 different feedsのように作成するためです。

ご協力いただきありがとうございます。私は数ヶ月前に正規表現に重かったので、私はダミーのように感じ、今私はそれを行うことはできません。

+1

'/?([_ 0-9a-z - ] +)?'は '(/ [_ 0-9a-z - ] +)? 'に書き換えられるべきですか? – fge

答えて

1

URLの疑問符は、QUERY_STRINGではなくREQUEST_URIと一致するため、RewriteRuleで照合されません。あなたは、クエリ文字列がある場合、あなただけの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> 

に追加することができるはずリダイレクトしないことを望む場合は、クエリ文字列が空の場合、それは唯一のリダイレクトします。

+0

NB: RewriteRule、それは過度に複雑に見え、この解決策が働くならば、ほぼ確実に単純化することができます。 –

+0

あなたは確かにシンプルに見えるようにしました。ハハ。完璧に動作し、助けてくれてありがとう! :) –

関連する問題