У меня проблема с файлом .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
.
Но мне не повезло.
Не уверен, как решить эту проблему.
Это кажется, что mod_rewrite не включен. Попытайтесь выполнить следующее:
a2enmod rewrite
Если команда сообщает, которые переписывают, был включен, Apache перезапуска с sudo service apache2 restart
если это говорит, что уже включено, то это не ответ :)
Убедитесь в следующем:
/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
Я разработал то, чем это было, так как я открыл этот поток: было две проблемы, что я буду думать, неожиданно возник бы в любой ванильной установке ЛАМПЫ, установленной в соответствии со статьей 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
, и правила все еще загруженный штраф.