1

.htaccess に少し問題があります。ディレクトリが安全な場合、または安全なサブディレクトリ/ファイルの場合、mod rewrite の有効化を停止したいと考えています。次のように .htaccess を設定しました。

RewriteEngine On

RewriteBase /

#skip next rule if url starts with secure/
RewriteRule ^/secure/(.*) - [L,S]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]


<Files 403.shtml>
order allow,deny
allow from all
</Files>

なぜそれが機能しないのか、誰にもわかりませんか?ディレクトリにhtpasswordを使用する必要があるため、modの書き換えをオフにすることはできません。

4

1 に答える 1

0

ディレクトリごとのコンテキストでは、ディレクトリの最後にスラッシュが追加されます (rewriterule が一致する部分は先頭のスラッシュなしで残します)。したがって、最初のルールは決して一致しません。この場合、 を使用して単純に否定的な条件を設定できると思います%{REQUEST_URI}

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/secure/
RewriteRule ^(.*)$ index.php/$1 [L]
于 2013-11-16T10:09:14.477 に答える