У меня проблема с Apache в Arch-Linux. Я предполагаю, что это связано с mod_rewrite, но я не уверен.
Раньше я всегда работал с системами на основе Debian. Арка кажется немного другой.
У меня есть такой виртуальный хост и 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 и правильно выполнит инструкции mod_rewrite из .htaccess, но тогда он все еще будет иметь заголовок 404.
Есть идеи, что искать?
Оказалось, что mod_rewrite не включен.
В /etc/httpd/conf/httpd.conf
, раскомментировать:
#LoadModule rewrite_module modules/mod_rewrite.so
Почему я сначала не нашел этого? Потому что все переписывание URL-адресов, казалось, работало нормально, за исключением заголовка 404.