Я хочу установить AllowOverride all
Но я не знаю, как это сделать. Я нашел следующий код в поиске Google и вставил его в .htaccess
:
<Directory>
AllowOverride All
</Directory>
Но после вставки я начал получать "Internal Server Error"
Кто-нибудь может подсказать мне, где поставить этот код или как это сделать?
<Directory>
Директива требует пути аргумента.Ответы:
Если вы используете Ubuntu, отредактируйте файл
/etc/apache2/apache2.conf
(здесь у нас есть пример/var/www
):и измените его на;
затем,
Вам также может понадобиться
sudo a2enmod rewrite
включить перезапись модуля.источник
sudo a2enmod rewrite
, потом все заработало. На Ubuntu 14.04 LTS. Надеюсь, это будет полезно для кого-то.IncludeOptional conf-enabled/*.conf
в последней строке моегоapache2.conf
файла есть. Но, похоже,apache2.conf
вместо этого приоритет.Основная цель
AllowOverride
заключается в том, чтобы менеджер основных файлов конфигурации apache (который находится в / etc / apache2 / главным образом) решал, какая часть конфигурации может динамически изменяться приложениями для каждого пути.Если вы не являетесь администратором сервера, вы зависите от уровня AllowOverride, который позволяет вам администратор. Так что они могут помешать вам изменить некоторые важные настройки безопасности;
Если вы являетесь главным администратором конфигурации Apache, вы всегда должны использовать
AllowOverride None
и передавать все найденные примеры на основе google_, основанные на файлах .htaccess, вDirectory
разделы основных файлов конфигурации. Поскольку содержимое .htaccess для.htaccess
файла in/my/path/to/a/directory
- это то же самое, что и<Directory /my/path/to/a/directory>
инструкция, за исключением того, что.htaccess
динамическое изменение конфигурации для каждого HTTP-запроса замедляет работу вашего веб-сервера. Всегда предпочитайте статическую конфигурацию без.htaccess
проверок (и вы также избежите атак безопасности путем.htaccess
изменений).Кстати, в вашем примере вы используете,
<Directory>
и это всегда будет неправильно, инструкции каталога всегда содержат путь, например,<Directory />
или<Directory C:>
или<Directory /my/path/to/a/directory>
. И, конечно, это не может быть помещено в.htaccess
как.htaccess
команда Справочника, но в файл, присутствующий в этом каталоге. Конечно , вы не можете изменитьAllowOverride
в.htaccess
качестве этой инструкции управления уровнем безопасности в.htaccess
файлах.источник
Перейти к
your_severpath/apache_ver/conf/
Открыть файлhttpd.conf
в блокноте.Найдите эту строку:
Удалить хеш-символ:
Тогда перейдите
<Directory />
и изменить на:
Затем перезапустите свой локальный сервер.
источник
Order allow,deny
иAllow from all
для Apache 2.2 и ранее. В Apache 2.4 эти две строки заменяются,Require all granted
как показано в других ответах.В Linux, чтобы облегчить доступ к корню документа, вы должны отредактировать следующий файл:
И в зависимости от того, к какому уровню каталога вы хотите получить доступ, вы должны изменить директиву
в
Итак, если вы хотите разрешить доступ к файлам в каталоге / var / www / html, вам следует изменить следующие строки:
в
источник
Если вы используете Linux, вы можете отредактировать код в каталоге
Теперь, здесь найти строку кода вроде как
Измените AllowOveride None на AllowOveride All
Теперь вы можете установить любое правило в вашем файле .httacess внутри ваших каталогов, если любая другая операционная система просто попытается найти файл httpd.conf и отредактировать его.
источник
now here fine the code line kinda like # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. #Sep 11, 2013 apache - How to Set AllowOverride all - Stack Overflow stackoverflow.com/questions/18740419/how-to-set-allowoverride-all
Я думаю, что вы хотите установить его в свой
httpd.conf
файл вместо.htaccess
файла.Я не уверен, какую операционную систему вы используете, но эта ссылка для Ubuntu может дать вам несколько советов о том, что делать.
https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles
источник
Как другие пользователи объяснили здесь об использовании директивы allowoveride, которая используется для предоставления разрешения на использование .htaccess. Я хочу отметить одну вещь: никогда не используйте allowoverride all, если другие пользователи имеют доступ для записи .htaccess, вместо этого используйте allowoveride, чтобы разрешить определенные модули.
Такие как
AllowOverride AuthConfig mod_rewrite
вместоПотому что такой модуль, как mod_mime, может отображать ваши файлы на стороне сервера в виде простого текста.
источник
Я также столкнулся с этой проблемой, и я нашел решение как 2 шага ниже: 1. В папке apache2 с поддержкой сайтов вы редактируете в элементе каталога, установив «AllowOverride all» (должно быть «all», а не «none») 2. В проекте kohana в папке www переименуйте «example.htaccess» в «.htaccess»
Я сделал это на Ubuntu. Надеюсь, что это поможет вам.
источник
SuSE Linux Enterprise Server
Убедитесь, что вы редактируете правильный файл https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_apache2_configuration.html
В таком случае
vhosts.d/*.conf
должны быть отредактированыисточник
Кроме того, в этих правильных ответах иногда может наблюдаться одна и та же ошибка из-за несоответствия и различных настроек
SSL
в конфигурации веб-сервера . (Очевидно, когда не используется.htaccess
файл).источник