4

特定のファイル拡張子を除いて、すべてのリクエストを index.php ページにプッシュする一般的な mod_rewrite ルールを使用する Web サイトがあります。

RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml)$ index.php

私ができる必要があるのは、このルールから特定のディレクトリ (含まれているファイルまたはサブディレクトリを含む) を除外することです - 最善の解決策は何ですか?

その中の何かが干渉している場合に備えて、ここに私の完全な .htaccess ファイルがあります:

RewriteEngine ON
RewriteCond %{HTTP_HOST} !^www\..*
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{HTTP_HOST} ^([^.]*)\.(co\.uk)
RewriteRule ^.*$     http://www.%1.%2%{REQUEST_URI} [R=permanent,L]

AddHandler application/x-httpd-php .phtml

RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml)$ index.phtml

php_value display_errors "On"
4

2 に答える 2

7

引用した行の前に、たとえば「style」という名前のディレクトリの場合、次のものが必要です。

RewriteRule  ^style/  -  [L]

ハイフンは「リダイレクトなし」を意味し、「[L]」は「最後のルール」を意味します。これは、URLを次のルールに一致させようとしないためです。これらの行はいくつでも入力できますが、質問で指定する行の前に配置する必要があります。

于 2008-12-01T23:23:01.267 に答える
0

RewriteCond %{REQUEST_FILENAME} !-f既存のファイル名と一致しないリクエストを確認できます。

于 2008-12-01T20:57:37.177 に答える