web-dev-qa-db-fra.com

Erreur avec .htaccess et mod_rewrite

J'essaye d'héberger une application basée sur php avec les valeurs .htaccess suivantes.

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php

RewriteEngine On
RewriteBase /easydeposit
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Cependant, je continue à faire face aux deux erreurs suivantes,

[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

Je ne sais pas pourquoi cela se produit. Toute aide est appréciée.

20
pratz

Si vous avez récemment effectué une mise à niveau vers une version d'Apache supérieure à la version 2.2, l'erreur authz_core peut provenir de votre fichier httpd.conf ou httpd-vhosts.conf dans les balises <Document>. mod_authz_core a été introduit dans Apache 2.3 et a modifié la façon dont le contrôle d'accès est déclaré.

Ainsi, par exemple, au lieu de la manière 2.2 de configurer <Directory>...

    <Directory "C:/wamp">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

Les directives Order et Allow ont été remplacées par la directive Require:

    <Directory "C:/wamp">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

Sources http://www.andrejfarkas.com/2012/06/fun-with-wamp-server-and-Apache-2-4-2/http://httpd.Apache.org/docs/2.4/upgrading.html

57
Mabbage

Cette question/réponse m'a amené à la documentation pour laquelle je suis reconnaissant, et voici ce qui l'a résolue pour moi.

Fichier .htaccess précédent:

# 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

Cette configuration produisait des erreurs telles que:

[Jeu Dec 08 10: 29: 20.347782 2016] [access_compat: erreur] [pid 2244: tid 15876] [client 93.93.93.93:49340] AH01797: client refusé par la configuration du serveur: C: /path/to/index.php

mis à jour pour la configuration 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
4
WEBjuju

Je doute que cela ait quelque chose à voir avec votre fichier htaccess. Les erreurs sont générées par mod_access_compat , qui fournit les directives Allow, Deny, Order et Satisfy. Quelque part, vous avez probablement mal configuré votre autorisation et votre refus. Quant à l’erreur .htaccess à la fin, elle provient de mod_authz_core , il est donc possible qu’un élément en amont bloque l’accès aux fichiers .htaccess.

2
Jon Lin

Autre exemple, réécrivez à partir de:

www.yoursite.com/script.php?product=123 

à 

www.yoursite.com/cat/product/123/

en utilisant 

RewriteRule cat/(.*)/(.*)/$ /script.php?$1=$2

http://w3webtutorial.blogspot.com/2013/11/htaccess-and-modrewrite-in-your-php.html

0

Et vous êtes absolument certain que l'utilisateur Apache (probablement _www) a accès au répertoire (/home/abc/opt/Apache/htdocs/xyz/)?

0
LasseValentini

Êtes-vous sûr de pouvoir remplacer les options de votre fichier .htaccess? vérifier le fichier de configuration principal Apache pour cette

0
Sadeq

Pour moi, il y avait un fichier .htaccess dans le dossier wp-config contenant ces entrées

Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>

Cela a provoqué l'apparition d'icônes dans l'interface.

0
Asher Black
Options +FollowSymLinks
Options -Indexes

sur beaucoup d'hébergement partagé le code ci-dessus souvent les problèmes principaux

0
cepeko