为什么没有考虑在 mod_rewrite 中排除文件夹

为什么没有考虑在 mod_rewrite 中排除文件夹

我想为某个目录排除 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]

相关内容