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

Не работает .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.

Источник

Nginx + Apache = рабочий htaccess?

Основная часть
Options +FollowSymLinks
RewriteEngine On
# leave just a normal / (slash) if the script is installed at root level otherwise enter it’s folder here ex: /wscript (! no trailing slash)
RewriteBase /
RewriteCond % !-f
RewriteCond % !-d
RewriteCond $1 !^(index\.php|install|scripts|fonts|uploads|robots\.txt|sitemap\.xml|favicon\.ico)

# if wscript is installed in a subfolder, add it before index.php ex: RewriteRule ^(.*)$ /wscript/index.php?/$1 [L] otherwise leave it as is
RewriteRule ^(.*)$ /index.php?/$1 [L]

ну nginx реально круто кк прокся перед апачем, он позволит вам снять нагрузку на апачь со статическим контентом, нотребует администрировать сразу два демона.
Вообще все будет работать, практически все.
Правда вам в nginx нужно будет сделать правильные настройки, и тут нужно понимать природу прокси.
что она отличается от реального веб сервера.
Поскольку прокся не знает где реально хранятся ваши файлы, она просто предпалагает согласно шаблону.и Тд.
Вобще можно отключить .htaccess средствами nginx тогда действительно не бдет работать.
Но в общем и целом nginx + apache работать будут.
Естественно вам нужно будет правильно указать переменные
Вот Примерно так, на саом деле чуть побольше но основные значения тут есть.

server <
listen 80 default;
server_name _;
server_name_in_redirect off;
resolver 127.0.0.1;
access_log /var/log/ispconfig/httpd/$host/access.log;
error_page 404 = @fallback;

# локейшен нужный для 404 в моем случае если его небыло то сайт с www.site.ru/testЫЫЫ.html не отдавал 404 а отдавал 303 от nginx замечу при других варианитах сайт работал нормально исключительно с www в начале и .html в конце.

Читайте также:  Не работает клавиша нам лок

location @fallback <
proxy_pass http://$host:82;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;

* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ <
# пусть до файлов по умолчанию
root /var/www/$host/web;
# если в $host содержится ввв то он его удаляет в противном случае пусть будет /var/www/www.site.ru
if ($host

* ^(www\.)(.+)) <
set $HBW $2;
root /var/www/$HBW/web;
>
access_log off;
expires 30d;
>

location / <
root /var/www/$host/web;
if ($host

Источник

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