Отправка сообщения






Добро пожаловать!

Not Found после переноса сайта на другой сервер

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

Not Found 
The requested URL *some url* was not found on this server.

Как правило, ошибка возникает в компонентах вывода каталога, новостей и т.д., там, где используются возможности модуля mod_rewrite веб-сервера Apache.
Первым делом я переименовал файл .htaccess.restore в .htaccess который находился в корне сайта. Дело в том, что при переносе сайта, файл .htaccess который находиться в бэкапе переименовывается в .htaccess.restore, вместо него генерируется новый файл .htaccess. Судя по всему это сделано для того, чтобы избежать ошибок связанных с этим файлом. Если вдруг вы делали какие-либо изменения в файле, корректные для предыдущего сервера, то при переносе может возникнуть неполадки на новом сервере, но не факт.
У меня была проблема в другом. Причина была в том, что файл .htaccess не считывался вовсе. Стало понятно, что надо настраивать это дело в конфигах Apache. В файле конфигурации есть опция AllowOverride, значение которой нужно изменить вместо «None» установить «All».
Открываем файл конфигурации Apache в редакторе vi, в VMBitrix он находится по адресу /etc/httpd/conf/httpd.conf

# vi /etc/httpd/conf/httpd.conf

Находим строку с записью AllowOverride None, меняем на значение AllowOverride All.

<Directory />
        Options FollowSymLinks
        AllowOverride All
</Directory>

Мы сделали следующее:
AllowOverride All – здесь сказано что если существует файл .htaccess, то все (All) директивы прописанные в нем будут выполняться.
После изменения файла конфигурации следует перезапустить сервер Apache:

# service httpd restart

После этого директивы в файле .htaccess должны работать.

Добавил: htmaker, 20.04.2014 г.
 
плохослабосойдетхорошоотлично (1 голосов, средний: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Комментарии

  • Загрузка...

Наверх