首页 > apache 重写的奇怪问题

apache 重写的奇怪问题

捣鼓Apache重写的时候突然发现一个问题 原来的目录判断根本就不起作用

RewriteCond %{REQUEST_FILENAME} !-d 

完整的配置如下

<VirtualHost *:8080>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "d:/wamp/www/api"
    ServerName bbs.cj.com
    <Directory "d:/wamp/www/api">

    </Directory>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f #这个是起作用的
    RewriteCond %{REQUEST_FILENAME} !-d #这个不起作用
    RewriteRule ^/(\w*)/?$ /index.php?code=$1&%{QUERY_STRING} [L]

</VirtualHost>

最后摸索的解决办法有俩

  1. 把目录判断那句改成 绝对路径 RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
  2. 把重写规则放到Directory 标签里去

但是我就是不理解 同样是相对路径 !-f就能判断出来 为啥!-d就判断不出来

【热门文章】
【热门文章】