
Мы сменили хостинг с обычного сервера на VPS-сервер. На этом VPS-сервере работа идет нормально, однако файл .htaccess
не выполняется и не читается VPS.
Даже если это простые задачи, такие как перенаправление 301, например, код: ( Redirect 301 /url.html domain.com/urlnova.html
).
Но когда мы протестировали его на локальном сервере Apache (XAMPP), он работал нормально, как и на предыдущем хостинге.
Мы создали файл с нуля, и он все еще не работает. Мы говорили с поддержкой хостинга VPS, в данном случае Hostinger, но они не смогли помочь.
Есть ли способ включить .htaccess
?
решение1
.htaccess
использование в Apache httpd контролируется опцией AllowOverride
. Хотя большинство провайдеров общего хостинга включают все .htaccess
функции для клиентов, на самом делеотключено по умолчаниюв Apache httpd со стандартной конфигурацией.
.htaccess
Другие веб-серверы, такие как Nginx, вообще не поддерживают .
решение2
Прежде всего, выясните, является ли Apache действительно веб-сервером, работающим на вашем новом VPS. Насколько вам известно, на сервере работает Nginx, поскольку многие хостинг-провайдеры считают Apache и Nginx похожими веб-серверами, хотя это не так. Особенно в случае файлов, .htaccess
которые на 100% являются элементами Apache.
Какuser1686 заявляет в своем ответе, ваш хостинг-провайдер должен установить AllowOverride
для All
работы .htaccess
. И да, по умолчанию Apache AllowOverride
не установлен, All
несмотря на то, что почти 99% веб-серверов и веб-сайтов Apache должны быть .htaccess
установлены для работы. Например, Wordpress и Drupal (две самые популярные системы CMS) вообще не будут работать без .htaccess
установки и запуска.
Например, это директива, которую можно установить в нижней части файла по умолчанию, /etc/httpd/conf/httpd.conf
чтобы разрешить .htaccess
работу в любом каталоге в /var/www/html
.
<Directory "/var/www/html">
Options FollowSymLinks
AllowOverride All
</Directory>
Его также можно задать в локальном конфигурационном файле Apache по следующему пути:
/etc/httpd/conf.d/zzzz_local.conf
Раньше я добавлял такие вещи в конец, /etc/httpd/conf/httpd.conf
но сейчас лично мне кажется более разумным устанавливать их в конфигурационных файлах, которые загружаются.послеосновной httpd.conf
загружен в /etc/httpd/conf.d/
.
Но в целом, чтобы все работало, AllowOverride All
нужно настроить ..htaccess