htaccessのURLリライトヘルプ
質問
私は、次のリライトURLを持っています:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]
今、私はURLがmysite.com/abcのようなものであれば、それはまた、その内部のすべてのものを無視するべきであると、例外を追加します。 mysite.com/abc/dfgsまた、この書き換えから除外すべきである。
私はこれを実現するにはどうすればよい?
解決
/ ABCは既存のディレクトリである場合は、
は、
とそこにある別の.htaccessファイルを置くことができますRewriteEngine Off
は、それは本当にあなたが(それが存在するかどうか)書き換えないようにするだけで1つの文字列だ場合、
RewriteCond %{REQUEST_URI} !^/abc
要求されたパスは、「/ ABC」で始まる場合は書き換えないでしょう。
通常のブラウザのためのサイトをめちゃくちゃにせずにルールを書き換えるテストするには(あなたはもちろんのライブ環境で編集する必要があるということではない、これは純粋に架空のです:-))、私は次のように非常に有用見つけた:
RewriteCond %{REMOTE_ADDR} 12.34.56.78 # <-- where that's your IP address
他のヒント
URIは、ABCが含まれている場合は、
この書き換え避けるべきです。これは、またはあなたが望む正確に何であってもなくてもよいです。そうでない場合は、あなたの質問を編集します。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Rewrite ONLY if the REQUEST does NOT contain abc
RewriteCond %{REQUEST_URI} !abc
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]
所属していません StackOverflow