Я использую Debian Lenny и Apache 2. Я изменил значение по умолчанию .htaccess
файл с:
AllowOverride AuthConfig
Но я всегда получаю сообщение об ошибке not allowed here
при размещении любых инструкций в .htaccess
файл.
РЕДАКТИРОВАТЬ:
файл по умолчанию:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
Order allow,deny
Allow from all
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks Includes
#AllowOverride All
#AllowOverride Indexes AuthConfig Limit FileInfo
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
.htaccess:
#Options +FollowSymlinks
# Prevent Directoy listing
Options -Indexes
# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini)">
Order deny,allow
Deny from all
</FilesMatch>
# SEO URL Settings
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?_route_=$1 [L,QSA]
Информация о PHP:
apache2handler
Apache Version = Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny10 with Suhosin-Patch
Apache API Version = 20051115
Server Administrator = webmaster@localhost
Hostname:Port = hw-linux.homework:80
User/Group = www-data(33)/33
Max Requests = Per Child: 0 - Keep Alive: on - Max Per Connection: 100
Timeouts = Connection: 300 - Keep-Alive: 15
Virtual Server = Yes
Server Root = /etc/apache2
Loaded Modules =
core mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic
mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user
mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_mime mod_negotiation
mod_php5 mod_rewrite mod_setenvif mod_status
Вам потребуется минимум Параметры AllowOverride Authconfig FileInfo внутри твоего <Directory>
блок, чтобы получить .htaccess
вы разместили здесь, чтобы работать - mod_rewrite
потребуется FileInfo Options
и ваш <FilesMatch>
блок требует Authconfig
.
Также: ваше утверждение «не работает с AllowOverride All» ошибочно. Вы не можете указать более разрешительную среду, чем AllowOverride All
. В случае сомнений начните с этого, чтобы убедиться, что остальная часть вашей конфигурации работает, затем сузить его более конкретно (в целях безопасности).
Эта опция может использоваться только внутри Directory
элемент. Таким образом, вы должны указать каталог, который следует защитить.
здесь запрещено обычно вызывается попыткой установить директивы в .htaccess файл, который можно определить только в httpd.conf
.
Первая попытка
AllowOverride All
В твоей самой <Directory>
в свою папку www. Теперь твой .htaccess может работать в полную силу. Если это решит проблему, вы можете сосредоточиться на безопасности и уменьшать количество разрешенных директив одну за другой.