Verboten Sie haben keine Berechtigung zum Zugriff auf / auf diesem Server [geschlossen]

68

Alles, was ich heute tun wollte, war, eine Umleitungsregel in einen Unterordner zu schreiben, z. B.: Sie geben die URL ein: example.com und werden zu example.com/subfolder umgeleitet

So ein einfacher Wunsch. Ich habe versucht, im Internet eine Lösung zu finden. Das Internet sagte mir, ich solle eine .htaccess- Datei im htdocs-Stammverzeichnis hinzufügen mit:

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

Ich war das. Aber offensichtlich kein Erfolg, sie sagten mir nicht, dass ich das Modul in httpd.conf auskommentieren musste :

LoadModule rewrite_module modules/mod_rewrite.so

Also habe ich das auch gemacht. Wieder kein Erfolg. Sie sagten mir nicht, dass ich meine httpd.conf ändern müsste, damit die .htaccess- Datei aktiviert würde:

<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>

Wieder kein Erfolg, da ich diesen Fehler bei der Eingabe der URL erhalte:

Verboten Sie haben keine Berechtigung, auf diesen Server zuzugreifen.

Jetzt stecke ich fest und konnte im Internet keine weiteren Lösungen finden. Ich verwende Apache 2.4 aus privaten Gründen nur auf meinem Windows 7-Computer.

QuantumHive
quelle
Mögliches Duplikat der Apache-Erlaubnis verweigert
Alastair Irvine
Wo finde ich die httpd.conf auf apache2.4?
Schwarz

Antworten:

169

Ich habe meine Lösung dank Fehler mit .htaccess und mod_rewrite
für Apache 2.4 und in allen * .conf-Dateien (z. B. httpd-vhosts.conf, http.conf, httpd-autoindex.conf ..etc) gefunden

Require all granted

Anstatt von

Order allow,deny
Allow from all

Die Anweisungen Order und Allow sind in Apache 2.4 veraltet .

QuantumHive
quelle
Heilige Hölle, bin gerade von Centos abgewandert und ich bin super froh, dass ich das gesehen habe. Vielen Dank!
Robm
22
Verdammte Abwertung! - Apache Fehlermeldung wäre nett gewesen
Andrew Atkinson
Vielen Dank! Das rette meinen Tag!
Sibley
3
Ja, ich stimme @AndrewAtkinson voll und ganz zu. Jahre Apache2 und jetzt gleiche Version, andere Konfiguration.
Ameise
2
Tut mir leid zu fragen, aber wo genau sollen wir diese Zeile setzen?
Nyxee
13

ARBEITSMethode {wenn es kein anderes Problem als die Konfiguration gibt}

Standardmäßig beschränkt Appache den Zugriff von IPv4 nicht. (gemeinsame externe IP)

Was möglicherweise einschränkt, sind die Konfigurationen in 'httpd.conf' (oder 'apache2.conf', abhängig von Ihrer Apache-Konfiguration).

Lösung:

Alles ersetzen:

<Directory />
     AllowOverride none
    Require all denied

</Directory>

mit

<Directory />
     AllowOverride none
#    Require all denied

</Directory>

Dadurch werden alle Einschränkungen für Apache aufgehoben

Ersetzen Sie Require localdurch Require all grantedat- C:/wamp/www/Verzeichnis

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
#   Require local
</Directory>
Jerrychayan
quelle
3

Die Lösung ist einfach.

Wenn Sie versuchen, mit Ihrer lokalen IP-Adresse auf den Server zuzugreifen, und die Fehlermeldung " Verboten" angezeigt wird, haben Sie keine Berechtigung, auf diesen Server zuzugreifen

Öffnen Sie einfach Ihre httpd.conf-Datei von (in meinem Fall C:/wamp/bin/apache/apache2.2.21/conf/httpd.conf)

Suchen nach

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

Ersetzen Erlaube von 127.0.0.1

zu

Erlaube von allen

Speichern Sie die Änderungen und starten Sie Ihren Server neu.

Jetzt können Sie mit Ihrer IP-Adresse auf Ihren Server zugreifen

Mehul
quelle
2

Das Problem liegt in der Datei https.conf!

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

Der Fehler tritt auf, wenn Hash (#) entfernt oder herumgespielt wird. Diese beiden Zeilen sollten wie oben gezeigt aussehen.

Melvin
quelle
4
Bitte formatieren Sie Ihre Antwort.
Jonathan Eustace
mit was rumgespielt?
Flugzeug
1

Ich habe meine Lösung unter Apache / 2.2.15 (Unix) gefunden.

Und danke für die Antwort von @QuantumHive:

Erstens: Ich habe alles gefunden

Order allow,deny
Deny from all

Anstatt von

Order allow,deny

Allow from all

und dann:

Ich habe mich niedergelassen

#
# 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>

Entfernen Sie die vorherige "#" - Anmerkung zu

#
# 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. Mein WebDir ist: / var / www / html

MaxL
quelle
0

Dies funktioniert für mich unter Mac OS Mojave:

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