当URI文件夹不存在时,Mod Rewrite不起作用

时间:2017-03-26 18:56:24

标签: php apache .htaccess mod-rewrite url-rewriting

http://site.loc/工作正常

http://site.loc/books无效

.htaccess URL在本地主机上重写失败并出现404错误

  

在此服务器上找不到请求的网址/图书

我刚刚重新安装了Sierra并设置了PHP& Apache,面对上面的错误,这是我的简单.htaccess:

RewriteEngine On

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

这是CustomLog

localhost - - [26/Mar/2017:21:30:08 +0300] "GET /books/ HTTP/1.1" 404 204

注意同一.htaccess现在正在制作中没有问题,并且之前已在其他本地环境中工作。

尝试过1:

RewriteEngine On
RewriteBase /

尝试2:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteRule ^.htaccess$ - [F]

在httpd.conf中也改变了这个

ServerName localhost:80
<Directory />
    AllowOverride All
    Require all granted
</Directory>

并且rewrite_module已启用

请分享您的想法;)我在这里缺少什么?提前谢谢。

1 个答案:

答案 0 :(得分:0)

通过在vhosts.conf中添加以下Directory指令来解决此问题

<Directory "/path/to/site">
    Options All
    AllowOverride All
    Allow from all
</Directory>

要查看完整的VirtualHost指令的外观,请按照下面的屏幕截图;)

enter image description here