0

私は次のHTACCESSコードを持っています:

Options +FollowSymLinks
RewriteEngine On
RewriteBase   /

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

現状では、サイトのルート内で必要に応じて機能しますが、管理ページ(/cms/)にアクセスすると、PhpConsoleを介してまだpage.phpにアクセスしていることがわかります。これは、管理者がクエリ文字列で制御されているためだと思います。URIは次のようになります。/cms/?view=pages&action=edit&id=4

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

私のコードの何が問題になっていますか?

4

1 に答える 1

1

これでコードを変更します:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule (?!^(cms|js|mobile)(/.*|)$)^.*$ page.php [L,NC]
于 2012-04-26T20:23:59.773 に答える