Почти в каждом решении «Как активировать htaccess» говорится, что файл / etc / apache2 / sites-available / default необходимо отредактировать. Но в Apache 2.4.7 такого файла нет
Я где-то читал, что новый файл по умолчанию - 000-default.conf. Поэтому я отредактировал это и попытался добавить строку:
AllowOverride All
Но Apache2 не перезапустился правильно и выдал ошибку. Из документации apache2 я обнаружил, что AllowOverride разрешен только в этом <Directory>
разделе. Затем я попытался добавить это:
<Directory "/var/www">
AllowOverride All
</Directory>
И это похоже на работу. Но я не уверен, должен ли я поместить туда / var / www. Это правильный способ или мой компьютер как-нибудь взорвется?
apache2
configuration
.htaccess
CluelessNoob
источник
источник
Ответы:
ТЛ; др
Да, это правильный путь.
Но для большей семантики : да, это правильный способ разрешить
.htaccess
переопределять все директивы в/var/www
каталоге.Как вы выяснили,
AllowOverride
допускается только поDirectory
разделу.Используя ваш пример:
Это говорит Apache, что все конфигурации могут быть переопределены в
/var/www
и во всех его подкаталогах (рекурсивно).Для лучшего примера рассмотрим следующую конфигурацию на вашем виртуальном хосте:
И следующая структура каталогов:
То, что я сделал здесь, это создание
.htaccess
в каждом подкаталоге/var/www
каталога.Обычно так не должно быть, но это только ради примера.
Сравнивая структуру каталогов с конфигурацией, это означает, что все
.htaccess
файлы внутри/var/www
папки и ее подкаталогов, кроме/var/www/uploads
каталога и его подкаталогов, могут переопределять все виды директив.Но
/var/www/uploads
и его подкаталоги могут использовать.htaccess
файл только для переопределения директивAllow
,Deny
andOrder
.Примечание. Начиная с версии Apache 2.4 (которая доступна по умолчанию в 13.10+)
Allow
, директивы ,Deny
иOrder
были заменены единственной директивой с именемRequire
.источник
Сначала включите перезапись с помощью этой команды:
Затем перезапустите apache2:
Затем перейдите в
sites-available
папку:Отредактируйте названный файл
default
и изменитеAllowOverride none
наAllowOverride All
. Есть две строки, где это изменение должно быть сделано.Это заставит
.htaccess
работать на вашем сервере VPS.Это работало на Ubuntu 12.04.5 VPS.
источник
default
файл вызывается000-default.conf
и не содержитAllowOverride None
строки.000-default.conf
и его невозможно добавитьAllowOverride None
сюда, если вы перезагрузите apache и выдадите ошибку.htaccess
, то его лучше использоватьAllowOverride FileInfo
. Хотя FileInfo уже включает в себя большой набор директив, вы все равно будете ограничивать переопределение многих директив.В моем случае это работало так:
мне пришлось добавить следующие строки:
Так это выглядит так:
источник
Вот фрагмент, как включить htaccess в Apache 2.4 без изменения конфигурации по умолчанию:
источник