我在不同的位置拥有同一个文件夹的两个副本。它们包含完全相同的 .htaccess 文件。两个 .htaccess 文件具有相同的权限和所有者。
/home/sites/site/public_html/
/var/www/html/site/
我有一个 VirtualHost,它的 DocumentRoot 曾经指向它/home/sites
,但是我将其更改为/var/www
并重新启动了 Apache。
现在我的 htaccess 规则不再起作用。例如,/story/id
应该重写为/index.php?id=$id
。如果我在浏览器中转到/index.php?id=$id
,页面会正常加载,但如果我转到,/story/id
则会收到 404 错误。
如果我将 DocumentRoot 改回旧根目录,链接将再次开始工作。
对于可能造成这种情况的原因您有什么想法吗?
答案1
解决方案位于主 httpd.conf 文件中。AllowOverride 被设置为 none /var/www/html
,这之前没有关系,因为 web 文件夹位于 中/home/
。一旦我们将其设置为All
,重写规则就会再次开始工作。