2012-04-26 6 views
0

私は次のhtaccessのコードがあります。現状では、それは、私がサイトのルートの中にそれを必要とするように動作しますが、管理者ページ(/cms/)にアクセス、MOD_REWRITEではなく、サブディレクトリ内

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase /

#RewriteCond %{REQUEST_URI} !(/cms/|/js/|/mobile/)* [NC] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /page.php [L] 

を私はPhpConsole経由で、まだpage.phpに当たっていると伝えることができます。これは管理者がクエリ文字列で制御されているためだと思われます。/cms/?view=pages&action=edit&id=4

最初の条件のコメントを外すと、この問題は発生しなくなりますが、フロントエンドでは404存在しているのではなく、page.phpにリダイレクトしています

私のコードには何が問題なのですか?

答えて

1

変更これで、あなたのコード:

page.phpはまだCMSディレクトリ内にヒットされている以外これは、正常に動作します
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule (?!^(cms|js|mobile)(/.*|)$)^.*$ page.php [L,NC] 
+0

... – AVProgrammer

+0

あなたは 'のURIを意味するか/ CMS/style.css'まだ 'page.php'に行きますか? – anubhava

+0

実際には、うまくいきません。/cms /?view =ページに移動すると、まだpage.phpに当たっています。/cms /が検出された場合、私はpage.phpのコードをdie()に入れていますが、そうする必要はありません。 – AVProgrammer

関連する問題