.htaccess "Опции здесь не разрешены" - PullRequest
23 голосов
/ 17 августа 2011

У меня есть это в моем .htaccess:

Опции + FollowSymLinks

И я получаю следующую ошибку в apache error_log:

.htaccess: Options not allowed here

Вот часть из моего файла httpd.conf:

#htdocs symlinks here
<Directory /Users/you/code/my/folder>
    Options All
    AllowOverride All
</Directory>

<Directory />
    Options All
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<Directory "/Applications/XAMPP/xamppfiles/htdocs">
    Options All 
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Таким образом, я устанавливаю параметры «Все» и «AllowOverride All» везде, но, тем не менее, мне не разрешено устанавливать этот параметр. Кто-нибудь может понять это?

Спасибо, МРБ

Ответы [ 8 ]

24 голосов
/ 18 октября 2011

Обратите внимание, что это проблема, связанная с XAMPP.XAMPP загружает некоторые дополнительные файлы конфигурации, расположенные в XAMPP/etc/extra/, которые переопределяют httpd.conf.Для меня файл-нарушитель http-userdir.conf, который применяет правила для пользовательских запросов и содержит строку AllowOverride FileInfo AuthConfig Limit Indexes, и изменение этой строки на AllowOverride All действительно решило мою проблему.

Это относится только к файлам, обслуживаемым изВаш каталог / Sites / в OS X. Я не знаю, использует ли версия Windows UserDir или даже имеет подобное правило.

4 голосов
/ 23 апреля 2014

в моем случае я получаю изменение строки AllowOverride AuthConfig FileInfo на AllowOverride All в файле httpd-vhosts.conf, где этот файл находится в папке apache \ conf \ extra

3 голосов
/ 25 августа 2014

Вы должны разрешить переопределения для «Опции» в контексте каталога.нет необходимости:

vhost/directory config:
    AllowOverride All

Но только для разрешения переопределений для 'Опции':

    AllowOverride {Existing options to override} +Options
1 голос
/ 02 ноября 2014

Я только что установил самую последнюю версию XAMPP и подумал, как бы решить эту проблему.

Это специфический параметр XAMPP (при каждой новой установке XAMPP).Самый последний на сегодняшний день XAMPP - XAMPP 1.8.3 имеет параметр в /xampp/apache/conf/extra/httpd-xampp.conf, который вызывает ваше сообщение «Ошибка сервера».

И тогда в вашем журнале ошибок появляется следующая ошибка:

.htaccess: Options not allowed here

Откройте /xampp/apache/conf/extra/httpd-xampp.conf и найдите:

<Directory "/xampp/htdocs/xampp">
    <IfModule php5_module>
        <Files "status.php">
            php_admin_flag safe_mode off
        </Files>
    </IfModule>
    AllowOverride AuthConfig
</Directory>

и изменить

AllowOverride AuthConfig

на

AllowOverride All

После аутентификации или авторизации не потребуетсяизмените, ЕСЛИ вы не укажете это в своем httpd.conf, в дополнительных confs или в .htaccess.

Вы также можете прочитать документацию Apache для опции AllowOverride http://httpd.apache.org/docs/current/en/mod/core.html#allowoverride и выбрать более оптимальный и безопасный параметрэто позволит вам использовать ваш .htaccess, не вызывая ошибку сервера.

Также имейте в виду, что вы можете найти лучшее место для переписывания вышеуказанного правила в зависимости от результатов, которых вы хотели бы достичь.В моем случае это удовлетворительное изменение.

1 голос
/ 17 августа 2011

Полагаю, в вашей конфигурации apache есть глобальная настройка AllowOverride, которая запрещает это.Можете ли вы найти AllowOverride в вашем httpd.conf?

0 голосов
/ 26 августа 2014

Измените Options +FollowSymLinks на Options +SymLinksIfOwnerMatch во всех экземплярах файла .htaccess. Следующие ссылки отключены на многих серверах из-за угрозы безопасности.

0 голосов
/ 01 июня 2014

вместо изменения глобальных настроек AllowOverride в вашем основном файле httpd.conf, если у вас есть файл httpd-vhosts.conf, вы захотите поместить директивы AllowOverride All, относящиеся к каталогу, в каждую запись хоста, в которой вы нуждаетесь, так что вы может сохранить ограничительный набор на остальной части серверной области.

0 голосов
/ 14 мая 2013

Соответствует ли сервер, на котором расположен ваш домен, всем требованиям, необходимым для Elgg?В частности, доступен ли mod_rewrite?

Перепроверьте все выполненные вами шаги.

Если mod_rewrite работает ... У вас есть доступ к конфигурации (http.conf) Apache на вашемсервер?Если да, добавьте следующие строки (скорректируйте путь):

AllowOverride All

...