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

У меня проблема с файлом .htaccess на недавно установленном сервере Ubuntu под управлением Apache2.

Файл .htaccess в каталоге, в котором находятся файлы WordPress, не учитывается при загрузке страниц сервером. В файле apache2.conf нет оператора AllowOverride, но по умолчанию установлено значение All, и оно ничего не изменит, если я его включу.

Я попытался включить в раздел содержимое локального файла .htaccess. Я также пробовал это:

<Directory /var/www/mydomain.com/html>
AllowOverride All
</Directory>

Я также пытался изменить все экземпляры AllowOverride в / etc / apache2 / sites-available / default (которые по умолчанию имеют значение None) на All.

Но мне не повезло.

Не уверен, как решить эту проблему.

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

3 ответа

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

a2enmod rewrite

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

4
ответ дан 10 December 2011 в 14:10

Убедитесь в следующем:

/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 могут помочь.

]

- правка -

  • Изменения в файлах .conf вступают в силу не сразу, всегда требуется перезагрузка. Перезагрузка также может сработать, но я не уверен, в каких ситуациях перезагрузки недостаточно.

    /etc/init.d/apache2 restart

0
ответ дан 10 December 2011 в 14:10

Я разработал то, чем это было, так как я открыл этот поток: было две проблемы, что я буду думать, неожиданно возник бы в любой ванильной установке ЛАМПЫ, установленной в соответствии со статьей Media Temple Knowledgebase (который был тем, что я раньше настраивал (ve) сервер).

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

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

Выполнил следующее:

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

Во-вторых, я пришел к заключению, что также должен изменить все экземпляры AllowOverride в /etc/apache2/sites-available/default (которые все установлены на None по умолчанию) к All(см. эту статью, которая объясняет проблему).

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

9
ответ дан 10 December 2011 в 14:10

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

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