Mod_rewrite не работает
Я новичок в администрировании сервера, но мне удалось настроить LAMP на моем новом VPS. Я загрузил несколько веб файлов, которые работают на моем другом сервере, но они, похоже, дают мне ошибку: "Файл не существует" в моем /var/log/apache 2/error.log файле. Домашняя страница загружается только через мои скрипты, но на других страницах нет.
.htaccess код файла
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?r=$1 [L,QSA]
Я включил mod_rewrite на сервере и вижу, как он работает под моей страницей phpinfo(), которую я создал. Просто не знаю, почему эта проблема происходит. Если мне нужно опубликовать что-нибудь еще, сообщите мне:)
Ответы
Ответ 1
Похоже, что вашему сайту или виртуальному хосту не были предоставлены соответствующие разрешения для обработки файлов .htaccess
. Вы можете легко протестировать его, сделав специально синтаксическую ошибку: если ваш сайт не сбой, файл игнорируется.
Попробуйте что-то подобное в основном файле httpd.conf
:
<Directory "/path/to/your/site">
AllowOverride All
</Directory>
... или это (по вашему желанию):
<VirtualHost *:80>
AllowOverride All
</VirtualHost>
Ответ 2
Когда у меня возникла эта проблема, оказалось, что /etc/apache2/sites-enabled/000-default
имел AllowOverride All
, но /etc/apache2/apache2.conf
также имел такую же запись для нашего веб-сайта Directory
с AllowOverwrite None
. Поэтому обязательно проверьте оба места!