mod_rewrite не работает - PullRequest
       3

mod_rewrite не работает

21 голосов
/ 19 сентября 2010

Я новичок в администрировании сервера, но мне удалось запустить установку LAMP на моем новом VPS. Я загрузил несколько веб-файлов, которые работают на моем другом сервере, но они, похоже, дают мне ошибку: «Файл не существует» в моем /var/log/apache2/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 (), которую я создал. Просто не знаю, почему эта проблема происходит. Если мне нужно опубликовать что-нибудь еще, пожалуйста, дайте мне знать:)

Ответы [ 2 ]

43 голосов
/ 19 сентября 2010

Похоже, вашему сайту или виртуальному хосту не были предоставлены соответствующие разрешения для обработки файлов .htaccess.Вы можете легко проверить это, сделав синтаксическую ошибку нарочно: если ваш сайт не падает, файл игнорируется.

Попробуйте что-то подобное в вашем основном httpd.conf файле:

<Directory "/path/to/your/site">
    AllowOverride All
</Directory>

... или это (по вашему вкусу):

<VirtualHost *:80>
    AllowOverride All
</VirtualHost>
10 голосов
/ 18 ноября 2015

Когда у меня возникла эта проблема, оказалось, что /etc/apache2/sites-enabled/000-default имеет AllowOverride All, но /etc/apache2/apache2.conf также имеет такую ​​же запись для нашей сети Directory с AllowOverwrite None.Поэтому обязательно проверьте оба места!

...