2016-05-19 8 views
-1

私はウェブサイトのためのこれら二つの.htaccessのルールを組み合わせたい:一つだけがアクティブである.htaccessルールを結合するには?

RewriteRule ^newsletter\.html$ https://fleio.com/newsletter [L,R=301] 
RewriteRule ^newsletter[/]?$ newsletter.html [L] 

場合は、関係している何をやっています。しかし、私はそれらの両方を使用するとエラーが発生します。

リダイレクトが多すぎます。

https://docs.google.com/document/d/1M6rYkEV-tmO7wRSJYjGtGOFow-76ZvbODnnjiqCh1m0/edit?usp=sharing

+0

あなたは、他の1つ、およびその逆をリダイレクトしている、それがループです。リダイレクトするURLはどこですか? – Halcyon

+1

我々はコードを見て、「外部」行っていません。あなたの質問の編集としてここに貼り付けてください。 –

+0

RewriteRule^newsletter \ .html $ https://exanple.com/newsletter [L、R = 301] RewriteRule^newsletter [/]?$ newsletter.html [L] – badrhari

答えて

0

あなたがループエラーを取得しているので、あなたの二番目のルールは、内部的に同じ場所(最初のRUE)複数の時間に要求をリダイレクトしています。あなたはリライトループを防ぐためにTHE_REQUEST変数に対してのRewriteCondと一致するものを使用する必要があります。

はこれを試してみてください:

RewriteEngine on 

RewriteCond %{THE_REQUEST} /newsletter\.html [NC] 
RewriteRule^/newsletter/ [L,R] 
RewriteRule ^newsletter/?$ /newsletter.html [NC,L] 
+1

ありがとうstarkeen!仕事は大丈夫です。 – badrhari

+0

あなたがApacheの '2.4.' 上にある場合は、リライトループを防ぐために、あなたの内部のRewriteRuleで** END ** フラグを使用することができます歓迎@badrhariです。 次の例では、Apache 2.4以降で動作: 'のRewriteRule ^ニュースレター\ .htmlの$ https://fleio.com/newsletter [L、R = 301] のRewriteRule ^ニュースレター[/ ]?$ newsletter.html [END] ' – starkeen

関連する問題