Я хочу установить AllowOverride all
Но я не знаю, как это сделать. Я нашел следующий код, выполнив поиск в google и вставив его в .htaccess
<Directory>
AllowOverride All
</Directory>
Но после вставки я начал получать "Internal Server Error"
Может ли кто-нибудь мне посоветовать Где поставить этот код или как это сделать?
Если вы находитесь на Ubuntu, отредактируйте файл /etc/apache2/apache2.conf
(здесь приведен пример /var/www
):
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
и измените его на;
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
то
sudo service apache2 restart
Возможно, вам понадобится сделать sudo a2enmod rewrite
, чтобы включить перезапись модуля.
sudo a2enmod rewrite
, тогда это работало. На Ubuntu 14.04 LTS. Надеюсь, это будет полезно для кого-то.
Основная цель AllowOverride
заключается в том, что менеджер основных файлов конфигурации apache (в основном найден в файле /etc/apache 2/) определяет, какая часть конфигурации может быть динамически изменена по каждому пути приложения.
Если вы не являетесь администратором сервера, вы зависите от уровня AllowOverride, который разрешает вам тезисы администраторов. Чтобы они могли предотвратить некоторые важные параметры безопасности,
Если вы являетесь главным диспетчером конфигурации apache, вы всегда должны использовать AllowOverride None
и перенести все примеры google_based, которые вы найдете на основе файлов .htaccess в разделах Directory
в основных файлах конфигурации. Поскольку содержимое .htaccess для файла .htaccess
в /my/path/to/a/directory
совпадает с инструкцией <Directory /my/path/to/a/directory>
, за исключением того, что изменение конфигурации .htaccess
динамического per-HTTP-запроса - это замедление вашего веб-сервера. Всегда предпочитайте статическую конфигурацию без проверок .htaccess
(и вы также избегаете атак безопасности при изменениях .htaccess
).
Кстати, в вашем примере вы используете <Directory>
, и это всегда будет неправильно, инструкции Directory всегда содержат путь, например <Directory />
или <Directory C:>
или <Directory /my/path/to/a/directory>
. И, конечно, это не может быть помещено в .htaccess
, поскольку .htaccess
похож на инструкцию Directory, но в файле, присутствующем в этом каталоге. Конечно, вы не можете изменить AllowOverride
в .htaccess
, так как эта команда управляет уровнем безопасности файлов .htaccess
.
Перейти к your_severpath/apache_ver/conf/
Откройте файл httpd.conf
в Блокноте.
Найдите эту строку:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
Удалить символ хеша:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Затем переходим <Directory />
и измените на:
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Затем перезапустите локальный сервер.
Order allow,deny
и Allow from all
для Apache 2.2 и более ранних версий. В Apache 2.4 эти две строки заменяются на Require all granted
как показано в других ответах.
В Linux, чтобы облегчить доступ к корню документа, вы должны отредактировать следующий файл:
/etc/httpd/conf/httpd.conf
И в зависимости от того, на каком уровне каталога вы хотите расслабиться, вам нужно изменить директиву
AllowOverride None
к
AllowOverride All
Итак, если вы хотите разрешить доступ к файлам в каталоге /var/www/html, вы должны изменить следующие строки:
<Directory "/var/www/html">
AllowOverride None
</Directory>
к
<Directory "/var/www/html">
AllowOverride All
</Directory>
Если вы используете linux, вы можете отредактировать код в каталоге
/etc/httpd/conf/httpd.conf
теперь здесь отлично, строка кода вроде
# 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.
#
Order allow,deny
Allow from all
</Directory>
Измените AllowOveride Нет на Разрешить все
Теперь вы можете установить любое правило в файле .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
Как объясняют другие пользователи, об использовании директивы allowoveride, которая используется для разрешения использования .htaccess. я хочу отметить, что никогда не использовать allowoverride all, если другие пользователи имеют доступ к записи .htaccess вместо этого используют allowoveride, чтобы разрешить определенные модули.
Как AllowOverride AuthConfig mod_rewrite
Вместо
AllowOverride All
Поскольку модуль, например mod_mime, может отображать ваши файлы на стороне сервера в виде обычного текста.
Я думаю, вы хотите установить его в свой httpd.conf
файл вместо файла .htaccess
.
Я не уверен, какую ОС вы используете, но эта ссылка для Ubuntu может дать вам несколько указаний о том, что делать.
https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles
Я также встречаю эту проблему, и я нашел решение в виде 2 шагов ниже: 1. В папке с поддержкой адресов apache2, которую вы редактируете в элементе Directory, установите "AllowOverride all" (должно быть "все" не "none" ) 2. В проекте kohana в папке www переименуйте "example.htaccess" в ".htaccess"
Я сделал это на ubuntu. Надеюсь, что это поможет вам.
Сервер SuSE Linux Enterprise
Убедитесь, что вы редактируете правильный файл https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_apache2_configuration.html
httpd.conf
Основной файл конфигурации сервера Apache. Избегайте изменения этого файла. В нем в основном содержатся операторы include и глобальные параметры. Перезапишите глобальные настройки в соответствующих конфигурационных файлах, перечисленных здесь. Измените настройки хоста (например, корень документа) в конфигурации виртуального хоста.
В таком случае vhosts.d/*.conf
необходимо отредактировать
<Directory>
требует аргумента пути.