2011-11-09 13 views
0

以外のすべてを書き換える:それは、このような「管理者」として、私が作成した新しいディレクトリを書き換えないように私はそれを変更することができますどのようにモッズ書き換え - 私はこのコード行持っ

RewriteRule ^(.*)/$ allcities.php?state=$1 [QSA,L] 

Howverを。現在も同様に書き直されています。

答えて

3

あなたはそのためのRewriteCond使用することができます。

RewriteCond %{REQUEST_URI} !^/admin 
RewriteRule ^(.*)/$ allcities.php?state=$1 [QSA,L] 

RewriteCond上の正規表現の前に感嘆符に注意してください。正規表現はその意味を元に戻します。この場合、要求URIが/adminで始まらない場合、条件は真です。

詳細については、mod_rewrite documentationを参照してください。

+0

ありがとうございました。しかし、adminで始まるファイルがあるとどうなりますか?あなたは/ admin /に問題なく変更できますか? – Brett

+0

はい、必要な正規表現を使用することができます。 '^/admin /?$ $ 'はパスとオプションの末尾のスラッシュをマッチさせます。 –

+1

@HolgerJustあなたは '^/admin(/ | $)'を意味すると思います - あなたが書いたルールは、/ adminまたは/ admin /でのみ一致しません。 – fluffy

0

書き換えルールは、受信した順に処理されます。そのルールが処理される前に、既存のディレクトリにルーティングするハンドラを用意する必要があります。たとえば:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ allcities.php?state=$1 [QSA,L] 
関連する問題