我在 Arch-Linux 上使用 Apache 时遇到问题。我猜测这与 mod_rewrite 有关,但我也不确定。
过去我一直使用基于 Debian 的系统。Arch 似乎有点不同。
我有一个这样的虚拟主机,并在相应的目录中有一个 index.php。我尝试过使用和不使用 .htaccess。
<VirtualHost *:80>
ServerName test.localhost
DocumentRoot /home/me/sites/test
<Directory /home/me/sites/test>
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
当我访问http://test.localhost/
或时http://test.localhost/index.php
,它运行正常。
当我访问时http://test.localhost/foo
,它显示 404 未找到。
我可以使用 添加 .htaccess ErrorDocument 404 /index.php
,这样 Apache 将打开 index.php 并正确遵循 .htaccess 中的 mod_rewrite 指令,但它仍然有 404 标头。
有什么想法要寻找什么吗?
答案1
结果是 mod_rewrite 没有启用。
在 中/etc/httpd/conf/httpd.conf
,取消注释:
#LoadModule rewrite_module modules/mod_rewrite.so
为什么我一开始没有发现这一点?因为除了 404 标头之外,所有 URL 重写似乎都运行正常。