1

codeigniter ベースの Web サイトを作成していますが、問題があります。

このhtaccessできれいなURLを使用します:

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

すべて正常に動作しますが、次のようなすべての URL をリダイレクトしたいと思います: - site.com/reg - site.com/faq - など TO: - site.com/it/reg - site.com/it/faq - など

これを何度も試みましたが、environment_status を rewritecond として使用しただけの結果が表示されましたが、site.com/reg などの URL をリダイレクトせずに、site.com のみを site.com/it にリダイレクトしました。

rewritecond として environment_status がないと、常に無限のリダイレクト ループが発生します。解決策はありますか?

編集:で動作します

RewriteRule ^(reg|faq)/?$ /it/$1 [L,NC,R]

しかし、上記のような「ホワイトリスト」を使用せず、リダイレクトループなしで、すべての request_uri の前に /it/ を置く方法はありますか? (私は .* を入れてみましたが、ループがあります)?

解決済み:

RewriteRule !^(it|index\.php) /it%{REQUEST_URI} [L,R]

解決策をありがとう:

4

1 に答える 1

1

ルールを次のようにします。

RewriteEngine on

RewriteRule !^(it|index\.php) /it%{REQUEST_URI} [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?/$1 [L]
于 2013-11-14T16:24:17.013 に答える