Подтвердить что ты не робот

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(), которую я создал. Просто не знаю, почему эта проблема происходит. Если мне нужно опубликовать что-нибудь еще, сообщите мне:)

4b9b3361

Ответ 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. Поэтому обязательно проверьте оба места!