我想为某个目录排除 mod_rewrite。
我希望文件夹“phd_application”不被重写,也就是说,当一个url指向
www.myserver.com/phd_application
它进入该文件夹。
它在上传到网络服务器时可以工作,但在本地却不行,我不明白为什么。我在本地和远程有相同的 .htaccess 文件。我遗漏了什么?
我有以下 .htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(phd_application/) - [L]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
.htaccess 所在目录的内容
-rwxr-xr-x 1 183 Dec 19 12:43 .htaccess
drwxr-xr-x 13 18 Dec 13 15:44 app
lrwxrwxrwx 1 15 Dec 13 14:48 cake -> ../CakePHP/cake
-rwxr-xr-x 1 1850 Dec 13 15:14 index.php
drwxr-xr-x 3 8 Dec 19 12:46 phd_application
lrwxrwxrwx 1 18 Dec 13 14:49 plugins -> ../CakePHP/plugins
lrwxrwxrwx 1 18 Dec 13 14:50 vendors -> ../CakePHP/vendors
答案1
日志说了什么?在本地机器上启用 rewritelog 并检查会发生什么。
仅供参考,使用 RewriteCond 从全局重写中排除一个位置会更好。
例子:
RewriteRule ^$ app/webroot/ [L]
RewriteCond ${REQUEST_URI} !^phd_application/
RewriteRule (.*) app/webroot/$1 [L]