Я пытаюсь разместить php-приложение со следующими значениями .htaccess.
Options +FollowSymLinks Options -Indexes DirectoryIndex index.php RewriteEngine On RewriteBase /easydeposit RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
Тем не менее, я продолжаю сталкиваться с двумя следующими ошибками:
[access_compat:error] [pid 25330:tid 27] AH01797: client denied by server configuration: /home/abc/opt/apache/htdocs/xyz/system/ [access_compat:error] [pid 25330:tid 27] AH01797: client denied by server configuration: /home/abc/opt/apache/htdocs/xyz/private/ [access_compat:error] [pid 25330:tid 27] AH01797: client denied by server configuration: /home/abc/opt/apache/htdocs/xyz/application/ [authz_core:error] [pid 25330:tid 27] AH01630: client denied by server configuration: /home/abc/opt/apache/htdocs/xyz/.htaccess
Я не знаю, почему это происходит. Любая помощь приветствуется.
Если вы недавно обновили версию Apache больше версии 2.2, ошибка error authz_core может возникать из файла httpd.conf или httpd-vhosts.conf в тегах <Document>
. mod_authz_core был введен в Apache 2.3 и изменил способ объявления контроля доступа.
Так, например, вместо 2.2 способа настройки <Directory>
…
<Directory "C:/wamp"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
Директивы Order и Allow были заменены директивой Require :
<Directory "C:/wamp"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Источники http://www.andrejfarkas.com/2012/06/fun-with-wamp-server-and-apache-2-4-2/ http://httpd.apache.org/docs/2.4/upgrading.html
Я сомневаюсь, что это имеет какое-либо отношение к вашему файлу htaccess. Ошибки вызывают mod_access_compat , который предоставляет директивы Allow
, Deny
, Order
и Satisfy
. Где-то у вас, вероятно, неправильная настройка allow и deny. Что касается ошибки .htaccess в конце, это от mod_authz_core , поэтому может быть что-то вверх по потоку, которое блокирует доступ к файлам .htaccess прямо.
Этот вопрос / ответ привел меня к документации, за которую я благодарен, но вот что я решил для меня.
Предыдущий файл .htaccess
:
# password protection allowing multiple resources AuthType Basic AuthName "Restricted Area" AuthUserFile C:\path\to\.htpasswd AuthGroupFile /dev/null Require valid-user # allow public access to the following resources SetEnvIf Request_URI "(path/to/public_files/.*)$" allow # these lines must be updated Order allow,deny # Allowing an ip range: Allow from 69.69.69 # Allowing another range: Allow from 71.71.71 Satisfy any
Эта конфигурация создавала ошибки, такие как:
[Thu Dec 08 10: 29: 20.347782 2016] [access_compat: error] [pid 2244: tid 15876] [клиент 93.93.93.93:49340] AH01797: клиент отказался от конфигурации сервера: C: /path/to/index.php
обновлен для конфигурации 2.4
# 7 lines unchanged...shown again for clarification AuthType Basic AuthName "Restricted Area" AuthUserFile C:\path\to\.htpasswd AuthGroupFile /dev/null Require valid-user SetEnvIf Request_URI "(path/to/public_files/.*)$" allow # these are the changes replacing: # Order allow,deny # Allow from <range> # Satisfy any Require ip 69.69.69 Require ip 71.71.71 Require all granted
Вы уверены, что вам разрешено переопределять параметры в вашем файле .htaccess? проверьте главный файл конфигурации apache для этого
Options +FollowSymLinks Options -Indexes
на многих общих хостингах вышеприведенный код часто являются основными проблемами
И вы абсолютно уверены, что пользователь apache (возможно, _www) имеет доступ к каталогу ( /home/abc/opt/apache/htdocs/xyz/
)?
Другой пример: переписать:
www.yoursite.com/script.php?product=123
в
www.yoursite.com/cat/product/123/
с помощью
RewriteRule cat/(.*)/(.*)/$ /script.php?$1=$2
http://w3webtutorial.blogspot.com/2013/11/htaccess-and-modrewrite-in-your-php.html