2013-11-16 8 views
1

У меня проблема с .htaccess. Я хочу прекратить переписывание мод, если каталог защищен, или любой подкаталог/файл безопасности. Я установил .htaccess следующим образом:Почему .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> 

Кто-нибудь есть идеи, почему он не работает? Я не могу просто отключить mod rewrite, потому что мне нужно использовать htpassword для каталога.

ответ

0

В контексте подкаталогом косая черта добавляется в конец каталога (оставляя часть, с которой переписывается ссылка без главной косой черты). Your first rule will therefore never match. В этом случае, я думаю, вы можете просто иметь отрицательное условие, используя %{REQUEST_URI}.

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