Как правильно сконфигурировать mod_rewrite для apache2 для работы в Yii1?

Автор EVOSandru6, 02 февраля 2016, 11:28:41

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

EVOSandru6

Добрый день!

Поставил на debian apache + php + postgres

Прописал хосты, добавил:

sudo a2enmod rewrite
sudo a2ensite hotel.conf
updatedb
locate mod_rewrite.so
cd /etc/apache2/mods-enabled
touch rewrite.load


Прописал: в вышеуказанном:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

000-default.conf :
<VirtualHost *:80>
      ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
      <Directory />
             Options Indexes FollowSymLinks MultiViews
             AllowOverride all
             Order allow,deny
             allow from all
      </Directory>
      <Directory /var/www/hotel/public_html>
             Options Indexes FollowSymLinks MultiViews
             AllowOverride all
             Order allow,deny
             allow from all
      </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


hotel.conf :
<VirtualHost *:80>
    ServerName hotel
    ServerAdmin evosduple@mail.ru
    ServerAlias www.hotel
    DocumentRoot /var/www/hotel/public_html
    CustomLog ${APACHE_LOG_DIR}/hotel.access.log combined
    ErrorLog ${APACHE_LOG_DIR}/hotel.error.log
    AssignUserID andrey andrey
    DirectoryIndex index.php index.php4 index.php3 index.cgi index.pl index.html index.htm index.shtml index.phtml
    <Directory /var/www/example.com>
        Options -Includes -Indexes -ExecCGI
    </Directory>
</VirtualHost>


В .htaccess файле в корне сайта:
AddDefaultCharset utf-8
RewriteEngine on
RewriteBase /
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php


Проблема в том, что ссылки вида:

http://hotel/hotels/3

Улетают в 404

Открывается только главная страница сайта,

В чем может быть причина?

Раннее сидел на винде с openserver и не заморачивался, но решил попробовать на debian развернуть проект.

конфиги прячем в тег "код" или тег "спойлер". endru

endru

1) при любой ошибке полезно смотреть логи:
tail -n 20 /var/log/apache2/error.log
2) не нужно прописывать LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so , все и так заработает после a2enmod rewrite
3) файлы .htaccess не обрабатываются, не включена опция в конфиге:
<Directory /var/www/hotel/public_html>
  AllowOverride All
</Directory>