0

私は次のコードを使用しています

RewriteEngine on
RewriteRule  ^/(certain|folders|on|server) - [NC,L]
RewriteRule (.*) http://newserver/blog$1 [L,NS]

フォルダのリストを無視して、他のすべてにリダイレクトすることを期待します。代わりに、常に「newserver」にリダイレクトしているようです。最初のステートメントで「-」をURLに変更しても機能しますが、実際にはこれらのフォルダーをどこにでも配置したくありません。

なぜ私のステートメントが期待どおりに機能しないのですか?

また、リストされていないすべてのフォルダーについて、「newserver /」がありますが、リストされているフォルダーは「newserver」(uriなし)であることに気付きました。

4

2 に答える 2

0

ルールの先頭のスラッシュを削除する必要があります。htaccessファイルの書き換えルールには、先頭のスラッシュが削除されたものと照合するためのURIが与えられます。?スラッシュの後にアフターを追加して、最初のルールを変更します。

RewriteRule  ^/?(certain|folders|on|server) - [NC,L]

または、条件に変更することもできます。

RewriteCond %{REQUEST_URI} !^/(certain|folders|on|server)

それはそれに続くルールに適用されます。

于 2012-08-30T20:52:40.997 に答える
0

私のルールは期待どおりに機能することがわかりました。私は以前、apache.confでこれらのルールを使用しようとしていました。それをサイトの「VirtualDirectory」タグに移動すると、うまくいくようです

于 2012-08-31T18:58:42.527 に答える