.htaccess игнорируется на сервере Ubuntu

Попробуйте sudo cheese, если это проблема разрешения, это позволит вам открыть его с привилегиями суперпользователя.

6
задан 10 December 2011 в 16:10

3 ответа

Это похоже на то, что mod_rewrite не включен. Попробуйте запустить следующее:

a2enmod rewrite

Если команда сообщает, что переписывание включено, перезапустите Apache с sudo service apache2 restart, если он говорит, что он уже включен, тогда это не ответ:) [ ! d1]

3
ответ дан 25 May 2018 в 16:04
  • 1
    Благодаря! На самом деле mod_rewrite уже был включен (я проверил). Но я отработал (см. Мой ответ ниже). – Donald Jenkins 11 December 2011 в 01:22
  • 2
    Это эквивалентно выполнению символической ссылки, как я предлагаю в своем решении, поскольку она ее создает, но лучше, чем указывает автор. – Donald Jenkins 11 December 2011 в 08:03

Я разработал то, что было с тех пор, как я открыл этот поток: были две проблемы, которые, как я думал, возникли бы в любой настройке LAMP для ванили, установленной в соответствии с статьей базы знаний Media Temple (это было то, что я использовал для настройки (ve)).

Во-первых, это был модуль перезаписи. Казалось, что мои файлы .htaccess не были прочитаны сервером, потому что модуль перезаписи должен быть включен: по-видимому, это значение по умолчанию для новой установки, такой как тот, который я только что выполнил. Кто знает?

Включение модуля довольно просто: мне просто нужно было сделать символическую ссылку на файл rewrite.load из каталога, доступного для модов, в каталог с поддержкой мод (все найденные в этом случае , в каталоге apache2 в /etc/apache2).

Ran:

cd /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/rewrite.load rewrite.load

Во-вторых, я пришел к выводу, что мне также необходимо изменить все экземпляры AllowOverride в [ f6] (по умолчанию все установлены на None) до All (см. статью базы знаний Temple Temple , которая объясняет проблему).

Наконец, был вопрос о том, как для применения правил. Я фактически решил удалить мой файл .htaccess и поместить все его правила в раздел <Directory> в http.conf (который теперь является отдельным файлом, все еще вызываемым в apache2.conf, и который я буду использовать для включения всех моих настроек) , потому что установка AllowOverride на None и полагающаяся на apache2.conf для всех вызывает увеличение скорости, так как серверу больше не нужно проверять файл .htaccess на каждом уровне перед загрузкой страницы. Затем я удалил .htaccess, установил AllowOverride в None, и правила все еще загружены в порядке.

9
ответ дан 25 May 2018 в 16:04
  • 1
    Настоятельно рекомендуется использовать a2enmod и a2dismod для включения и отключения модулей Apache в Ubuntu. – Marco Ceppi♦ 11 December 2011 в 01:34
  • 2
    Вы имеете в виду вместо символической ссылки? Но mod_rewrite включен , я проверил, и он не будет загружать правила. Или вы имеете в виду сочетание обоих? – Donald Jenkins 11 December 2011 в 01:38
  • 3
    Если он был включен и возникла проблема с тем, что он не загружается, то, вероятно, что-то не ванильное с вашей настройкой. – Marco Ceppi♦ 11 December 2011 в 01:40
  • 4
    Ой! Но что менее оптимально с символической ссылкой? – Donald Jenkins 11 December 2011 в 01:42
  • 5
    Второй момент был ключом моего заблокированного замка! – smhnaji 7 November 2012 в 22:16

Убедитесь, что:

/etc/apache2/apache2.conf

#
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#

AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

Ubuntu - HTTPD - веб-сервер Apache2 может помочь.

[d4 ] - edit -

Изменения в .conf-файлах не вступают в силу немедленно, всегда требуется перезагрузка. Перезагрузка также может работать, но я не уверен, в каких ситуациях перезагрузки просто недостаточно. /etc/init.d/apache2 restart
1
ответ дан 25 May 2018 в 16:04

Другие вопросы по тегам:

Похожие вопросы: