Apache .htaccess не работает на новом VPS

Apache .htaccess не работает на новом VPS

Мы сменили хостинг с обычного сервера на 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

Связанный контент