は私がブラウザに通知したい2つのリライトルールがあると言う。複数のR = 301のリダイレクトルール、単一リダイレクト
- 索引を除去WWWプレフィックス(
http://example.org
からhttp://www.example.org
) - を除去.PHP(
http://example.org
からhttp://example.org/index.php
)
Iは、両方のルールを適用したいのですが、私は301リダイレクトをもたらすためのいずれかのルールが欲しいです。両方のルールが一致する場合は、301のリダイレクトが1つしかないようにしたいと思います。
問題は、規則に[R]
フラグがある場合、に従ってそれに付随する[L]
(最終)フラグも指定する必要があります。 URIへ
あなたは、ほとんどの場合、[L]と連動して、[R]を使用したいと思うでしょう(つまり、[R、L]を使用している)ので、自分自身で、[R]フラグ前に付加http://thishost[:thisport]が、これをルールセット内の次のルールに渡します。これにより、「無効なURIがリクエストされました」という警告が出ることがよくあります。
いずれの回避策もありますが、両方のルールで2回のリダイレクトが発生することはありませんか?
RewriteEngine On
# Naked domains
RewriteRule ^/?(.*)$ http://example.org/$1 [R=301,L]
# Remove index.php
RewriteRule ^index.php/(.*)$ /$1 [R=301,L]