О web-разработке
и даже немного больше...

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 должны работать.

Опубликован: 20.04.2014 г.

См. также:

«Не удалось установить соединение с сервером. Проверьте …».
Получение Email-адреса покупателя в заказе (Bitrix D7)
Работа с URL-адресами в Bitrix D7
Работа с купонами в Bitrix API
Добавляем пункт меню для списков в админке Битрикс
Диалоговые окна в Bitrix API
Создание инфоблока при установке модуля
Создание копии корзины из заказа на Bitrix D7

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

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

Комментарии
  • Загрузка...
Друзья сайта