0

私は次の書き換え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もこの書き換えから除外する必要があります。

どうすればこれを達成できますか?

4

2 に答える 2

2

/abc が既存のディレクトリである場合、そこに別の .htaccess ファイルを配置できます。

RewriteEngine Off  

書き換えたくない文字列が本当に 1 つだけの場合 (存在するかどうかに関係なく)

RewriteCond %{REQUEST_URI} !^/abc  

要求されたパスが「/abc」で始まる場合、書き換えません

通常のブラウザーでサイトを台無しにすることなく書き換えルールをテストするには (もちろん、ライブ環境で編集する必要はありません。これは純粋に仮説です :-) )、次のものが非常に役立つことがわかりました。

RewriteCond %{REMOTE_ADDR} 12.34.56.78 # <-- where that's your IP address  
于 2009-06-28T17:50:31.683 に答える
0

これにより、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]
于 2009-06-28T17:29:27.573 に答える