web-dev-qa-db-fra.com

Interdit Vous n'avez pas la permission d'accéder/sur ce serveur

Aujourd’hui, tout ce que je voulais, c’était écrire une règle de redirection dans un sous-dossier, par exemple :.Vous entrez l’URL: example.com et vous êtes redirigé vers example.com/subfolder

Un tel souhait simple. J'ai essayé de trouver une solution sur Internet. Internet m'a dit d'ajouter un fichier .htaccess à la racine de htdocs avec:

RewriteEngine on
RewriteCond %{HTTP_Host} ^example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule ^$ subfolder [L]

J'ai fait ça. Mais pas de succès évidemment, ils ne m'ont pas dit que je devais décommenter le module dans httpd.conf :

LoadModule rewrite_module modules/mod_rewrite.so

Alors j'ai fait ça aussi. Pas de succès encore. Ils ne m'ont pas dit que je devais changer mon httpd.conf pour que le fichier .htaccess soit activé:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Encore une fois pas de succès, car je reçois cette erreur en entrant l'URL:

Interdit Vous n'êtes pas autorisé à accéder à/sur ce serveur.

Maintenant, je suis coincé et je ne peux plus trouver de solutions sur Internet. J'utilise Apache 2.4 sur ma machine Windows 7 pour des raisons privées.

65
QuantumHive

Trouvé ma solution grâce à Erreur avec .htaccess et mod_rewrite
Pour Apache 2.4 et dans tous les fichiers * .conf (par exemple, httpd-vhosts.conf, http.conf, httpd-autoindex.conf ..etc), utilisez

Require all granted

au lieu de

Order allow,deny
Allow from all

Les directives Ordre et Autoriser sont obsolètes dans Apache 2.4.

160
QuantumHive

Méthode WORKING {s'il n'y a pas d'autre problème que la configuration}

Par défaut, Appache est ne restreint pas l'accès depuis ipv4. (IP externe commune)

Ce qui peut limiter les configurations dans 'httpd.conf' (ou 'Apache2.conf' selon votre configuration Apache)

Solution:

Remplace tout:

<Directory />
     AllowOverride none
    Require all denied

</Directory>

avec

<Directory />
     AllowOverride none
#    Require all denied

</Directory>

supprimant ainsi toutes les restrictions données à Apache

Remplacez Require local par Require all granted dans le répertoire C:/wamp/www/

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
#   Require local
</Directory>
13
Jerin K. John

La solution est simple.

Si vous essayez d'accéder au serveur en utilisant votre adresse IP locale et que vous obtenez une erreur disant: Interdit, vous n'êtes pas autorisé à accéder à/sur ce serveur

Ouvrez simplement votre fichier httpd.conf à partir de (dans mon cas, C:/wamp/bin/Apache/apache2.2.21/conf/httpd.conf)

Rechercher 

<Directory "D:/wamp/www/"> .... ..... </Directory>

Remplacer Autoriser à partir de 127.0.0.1

à

Autoriser de tous

Enregistrez les modifications et redémarrez votre serveur.

Maintenant, vous pouvez accéder à votre serveur en utilisant votre adresse IP

3
Mehul

Le problème réside dans le fichier https.conf!

# Virtual hosts
# Include conf/extra/httpd-vhosts.conf

L'erreur se produit lorsque le hachage (#) est supprimé ou modifié. Ces deux lignes doivent apparaître comme ci-dessus.

2
Melvin

Trouvé ma solution sur Apache/2.2.15 (Unix).

Et merci pour la réponse de @QuantumHive:

D'abord: .__ j'ai tout trouvé

Order allow,deny
Deny from all

au lieu de

Order allow,deny

Allow from all

et alors:

J'ai réglé

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
#<Directory /var/www/html>
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>

Supprimer l'annotation "#" précédente à

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /var/www/html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

ps. mon WebDir est:/var/www/html 

1
MaxL

Cela fonctionne pour moi sur Mac OS Mojave:

<Directory "/Users/{USERNAME}/Sites/project">
    Options +Indexes +FollowSymLinks +MultiViews
    AllowOverride All
    require all granted
</Directory>
0
MIA