0

htaccess ファイルにいくつかのリダイレクト ルールを設定するためのヘルプを探しています。サイトを Codeigniter で実行するように切り替えました。基本的に、.php で終わるすべてのページは、その末尾が削除されましたwww.mysite.com/foo/bar.phpwww.mysite.com/foo/bar

次のようにリダイレクトをリストしてみました:

Redirect 301 http://mysite.com/foo/bar.php http://mysite.com/foo/bar
Redirect 301 http://mysite.com/foo/bar/bar.php http://mysite.com/foo/bar/bar
Redirect 301 http://mysite.com/foo/bar/foo.php http://mysite.com/foo/bar/foo

など (約 12 のルールが必要)。奇妙なことに、最初のルールでは機能しますが、他のルールでは機能しませんか? それらを正しくリストしていませんか?私が読んだものはすべて、これがどのように書かれるべきかを教えてくれます。それで、私は何を間違っていますか?

関連する可能性のある追加情報:

私のhtaccessファイルにはすでに次のコードが含まれています(URLから「index.php」を削除するため):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

これがリライトの前後に配置されるかどうかが重要かどうかわかりませんか? また、問題のサイトはアドオン ドメインです。これらの書き換えを、マスター サイトのパブリック フォルダーにある .htaccess ファイルに配置する必要があるのか​​、それともアドオン ドメインのサブディレクトリに配置する必要があるのか​​、よくわかりません。(私は両方を試しましたが、同じ結果でした)。

助けてください!前もって感謝します。

4

1 に答える 1

6

申し訳ありませんが、私はこれを解決しました。各ルールからベース URL を削除したところ、機能するようになりました。すなわち:

Redirect 301 /foo/bar.php /foo/bar

それ以外の:

Redirect 301 http://mysite.com/foo/bar.php http://mysite.com/foo/bar

理由は完全にはわかりません... 読む必要があります。

于 2013-10-27T12:49:59.133 に答える