Не работают файлы htaccess

Apache не читает .htaccess

Столкнулся с тем, что Apache читает файл .htaccess , который я создал для своего сайта, но совершенно его не воспринимает. Длительное чтение статей выявило, что недостаточно полно был настроен файл конфигурации Apache httpd.conf . В этой статье я расскажу, что было сделано не так, и что нужно сделать. Все операции требуют привилегий root.

Содержимое файла .htaccess :

Эти директивы должны были бы перенаправлять все запросы к сайту с любой страницы на index.php , однако на самом деле этого не происходило и я получал сообщение Error 404: Page not found . Отходить от шаблона проектирования Front Controller я не собирался, поэтому начал читать.

В большинстве статей написано, что нужно раскомментировать следующие строки в httpd.conf :

В CentOS 6 эта строка раскомментирована по умолчанию, и нужная библиотека также присутствует в каталоге файлов Apache. В Deb-дистрибутивах этот мод по умолчанию выключен, включается командой:

Дальше нужно проверить, что в httpd.conf раскомментированы следующие строки:

Однако и этого недостаточно. По-умолчанию в качестве DocumentRoot для Apache указана папка /var/www/html . Соответствующие правила ее обработки описаны в httpd.conf следующими строками (комментарии удалены):

Я выкладываю сайты на свой сервер в папку /var/www , т. е. по факту у меня DocumentRoot’ом будет выступать именно она, а не /var/www/html . Это дело привычки, просто потом при заполнении файлов конфигурации виртуальных хостов писать текста немного меньше.

Источник

.htaccess не работает apache

У меня есть сервер из сервиса AWS EC2, работающий в Linux Ubuntu, и я установил apache, php и mysql.

Я добавил .htaccess файл в корень моего документа /var/www/html .

Я ввел этот код в нем: ErrorDocument 404 /var/www/html/404.php и он до сих пор не появляется.

Читайте также:  Нанокад не работает привязка

Я продолжал вводить эту команду несколько раз: sudo service httpd restart перезагрузить сервер, но без изменений .

Как я могу это исправить . Я сделал что-то не так?

Во-первых, обратите внимание, что перезапуск httpd не требуется для файлов .htaccess. Файлы .htaccess специально предназначены для людей, у которых нет root — то есть они не имеют доступа к файлу конфигурации сервера httpd и не могут перезапустить сервер. Поскольку вы можете перезапустить сервер, вам не нужны файлы .htaccess, и вы можете напрямую использовать конфигурацию основного сервера.

Во-вторых, если файлы .htaccess игнорируются, вам необходимо проверить, правильно ли установлен AllowOverride. См. Http://httpd.apache.org/docs/2.4/mod/core.html#allowoverride для получения подробной информации. Вы также должны убедиться, что он установлен в правильной области — то есть в правильном блоке в вашей конфигурации. Убедитесь, что вы НЕ редактируете, например, блок.

В-третьих, если вы хотите убедиться, что файл .htaccess действительно читается, поместите в него мусор. Недопустимая строка, такая как «INVALID LINE HERE», в вашем файле .htaccess приведет к ошибке 500 Server, когда вы укажете браузеру на каталог, содержащий этот файл. Если это не так, то у вас не настроен AllowOverride правильно.

Источник

Не работают изменения в файле htaccess

Рекомендуемые сообщения

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Войти

Уже есть аккаунт? Войти в систему.

Похожий контент

Исходные данные:
Чистая новая установка ocStore 3.0.2.0 на вирт. сервер xampp в локальную папку /shop3/. Включены ЧПУ во вкладке Сервер, во вкладке SeoPro включено «Включить SeoPro» и «ЧПУ товаров с категориями». Все остальные настройки — по-умолчанию. .htaccess активирован, базовый Rewrite — /shop3/ — прописан. Больше ничего не менялось.

Суть проблемы:
ЧПУ работают, категории и товары открываются нормально. Только главная страница выдаёт бесконечный редирект (не открывается). Админка работает без проблем. Если в настройках вкладки SeoPro ещё включить «Добавить слэш в конец ссылки», то всё открывается нормально, включая главную. Но везде в конце URL добавляется слэш. Нужно чтобы работало без этого слэша.

Читайте также:  Телевизор витязь как настроить звук

Вопрос:
Как избавиться от бесконечного редиректа главной, не включая конечный слэш? На этом же xampp’е запускается ещё пару магазинов на ocStore 2.x.x.x и блог на WordPress (в своих подпапках) — там таких проблем нет: можно включать конечный слэш или отключать, всё работает без проблем.

Здравствуйте.
Вот, что у меня в htaccess:
RewriteEngine On RewriteBase / #Редирект с www to non-www(https) RewriteCond % ^www\.(.+)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] #Редирект с http to https RewriteCond % off RewriteRule ^(.*)$ https://%% [L,R=301] RewriteCond % !-d RewriteCond % ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L] RewriteCond % ^[A-Z]<3,9>\ /index\ HTTP/ RewriteRule ^index\.html$ / [R=301,L] RewriteCond % ^[A-Z]<3,9>\ /index\.php\ HTTP/ RewriteRule ^index\.php$ / [R=301,L] RewriteCond % ^route=common/home$ RewriteCond % !^POST$ RewriteRule ^index\.php$ https://%? [R=301,L] RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteRule ^download/(.*) /index.php?route=error/not_found [L] RewriteCond % !-f RewriteCond % !-d RewriteCond % !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] Больше там ничего нет.
Я, в принципе, не уверен, что он правильный (может кто подправит).
проверял здесь http://www.prcy-info.ru/index.php/redirect-checker
1)
Ссылка: https://мойсайт.ком/каталог
Обнаружен 301 редирект на URL: https://мойсайт.ком/каталог
Это ТАК должно работать?
2)
Ссылка: https://www.мойсайт.ком/каталог/
Обнаружен 301 редирект на URL: https://мойсайт.ком/каталог/
В других случаях слеш убирается, почему не убирается тут?

Последние посетители 0 пользователей онлайн

Ни одного зарегистрированного пользователя не просматривает данную страницу

Источник

Не работает .htaccess

Не работает переадресация всех запросов на index.php и выдает ошибку, как я понял, то проблема в том, что апач не учитывает настройки моего файла .htaccess.

Вот настройки апача из файла настройек httpd.conf

Вот содержимое htaccess

Подскажите, в чем проблема?

4 ответа 4

Первым делом нужно проверить обрабатывается ли htaccess. Для этого нужно сохранить его с любым текстом не имеющим смысла. Если получите 500-ю ошибку, то файл обрабатывается.

Далее нужно проверить заголовки сервера, например с помощью https://bertal.ru/ или инструментов разработчика Google Chrome — вкладка Network. Вполне возможно (на хостингах), что в заголовках ответа в качестве сервера вы увидите не Apache, а nginx. Тогда нужно смотреть как настроен nginx. Как правило он может искать запрашиваемые ссылки физически в файловой системе.

Читайте также:  Холодильник стинол двухкамерный не работает регулятор температуры

В вашей настройке не указано как будет называться AccessFile, нужно добавить «AccessFileName .htaccess» в конфиге apache.

У меня тоже была такая проблема. Но я решил. Нашёл два способа:

    Это решается со стороны хоcтинга. Если они не хотят или не могут, то нужно менять хостинг.

Перед названием контроллера добавить index.php . Например:

Ещё, на всякий случай вот тут содержимое моего файла .htaccess:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .htaccess apache или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.15.40479

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Apache — не обрабатывается файл .htaccess

Проблема заключается в следующем: при настройке нового виртуалхоста — сервер Apache не обрабатывает файл .htaccess .

Хотя в файле указана директива:

сервер все-равно отображает содержимое каталога виртуалхоста.

О создании и настройке виртуалхостов можно почитать тут>>>.

Решение заключается в переопределении параметра:

AllowOverride None
Order deny,allow
Deny from all

В файле конфигурации Apache — /usr/local/etc/apache22/httpd.conf установлено глобальное значение директивы — запретить в корневом каталоге сервера. Сама директива AllowOverride определяет директивы, разрешенные для использования в файле .htaccess .

Что бы не менять значение для всего каталога веб-сервера и его подкаталогов, переопределим значение для отдельного виртуалхоста.

В файл конфигурации /usr/local/etc/apache22/extra/httpd-vhosts.conf , где описан настраиваемый виртуалхост, в блок можно добавить значение локальных директив для каталога.

К примеру, описание виртуалхоста:

ServerAdmin root@setevoy.org.ua
DocumentRoot /usr/local/www/users/setevoy/setevoy.org.ua
ServerName setevoy.org.ua
ServerAlias setevoy.kiev.ua
ErrorLog /var/log/apachelog/setevoy.org.ua-error.log
CustomLog /var/log/apachelog/setevoy.org.ua-error.log common

Теперь, разрешим в нем использование любых параметров через .htaccess , для этого изменим описание, добавив блок , в котором будет описано поведение сервера при чтении из указанного каталога:

Источник

Оцените статью