Proibito Non si dispone dell’authorization per accedere / su questo server

Tutto quello che volevo fare oggi era scrivere una regola di reindirizzamento in una sottocartella, ad esempio: inserisci l’URL: example.com e verrai reindirizzato su example.com/subfolder

Un desiderio così semplice. Ho provato a trovare una soluzione su Internet. Internet mi ha detto di aggiungere un file .htaccess nella root di htdocs con:

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

L’ho fatto. Ma senza successo ovviamente, non mi hanno detto che dovevo decommentare il modulo in httpd.conf :

 LoadModule rewrite_module modules/mod_rewrite.so 

Così ho fatto anche questo Nessun successo ancora. Non mi hanno detto che dovevo cambiare il mio httpd.conf in modo che il file .htaccess fosse abilitato:

  Options FollowSymLinks AllowOverride None Order deny,allow Deny from all  DocumentRoot "c:/Apache24/htdocs"  Options Indexes FollowSymLinks AllowOverride All Require all granted  

Ancora nessuna riuscita, perché ottengo questo errore quando inserisco l’URL:

Proibito Non si dispone dell’authorization per accedere / su questo server.

Ora sono bloccato e non sono riuscito a trovare altre soluzioni su Internet. Sto solo eseguendo Apache 2.4 sulla mia macchina Windows 7, per motivi privati.

Ho trovato la mia soluzione grazie a Error con .htaccess e mod_rewrite
Per Apache 2.4 e in tutti i file * .conf (ad esempio httpd-vhosts.conf, http.conf, httpd-autoindex.conf ..etc) utilizzare

 Require all granted 

invece di

 Order allow,deny Allow from all 

Le direttive Order e Allow sono deprecate in Apache 2.4 .

Metodo di lavoro {se non vi è alcun problema oltre alla configurazione}

Di default Appache non limita l’accesso da ipv4. (IP esterno comune)

Ciò che può limitare sono le configurazioni in “httpd.conf” (o “apache2.conf” a seconda della configurazione di apache)

Soluzione:

Sostituisci tutto:

  AllowOverride none Require all denied  

con

  AllowOverride none # Require all denied  

quindi rimuovendo tutte le restrizioni fornite ad Apache

Sostituisci Require local con Require all granted nella C:/wamp/www/

  Options Indexes FollowSymLinks AllowOverride all Require all granted # Require local  

La soluzione è semplice.

Se stai tentando di accedere al server utilizzando il tuo indirizzo IP locale e ricevi un messaggio di errore come Vietato Non disponi dell’authorization per accedere / su questo server

Basta aprire il tuo file httpd.conf da (nel mio caso C:/wamp/bin/apache/apache2.2.21/conf/httpd.conf )

Cercare

.... .....

Sostituisci Permetti da 127.0.0.1

a

Permetti a tutti

Salva le modifiche e riavvia il tuo server.

Ora puoi accedere al tuo server usando il tuo indirizzo IP

Il problema si trova nel file https.conf!

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

L’errore si verifica quando hash (#) viene rimosso o incasinato. Queste due linee dovrebbero apparire come mostrato sopra.

Ho trovato la mia soluzione su Apache / 2.2.15 (Unix).

E grazie per la risposta di @QuantumHive:

Primo: ho trovato tutto

 Order allow,deny Deny from all 

invece di

 Order allow,deny Allow from all 

e poi:

Ho sistemato

 # # Control access to UserDir directories. The following is an example # for a site where these directories are restricted to read-only. # # # AllowOverride FileInfo AuthConfig Limit # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec #  # Order allow,deny # Allow from all #  #  # Order deny,allow # Deny from all #  # 

Rimuovi la precedente annotazione “#” in

 # # Control access to UserDir directories. The following is an example # for a site where these directories are restricted to read-only. #  AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec  Order allow,deny Allow from all   Order deny,allow Deny from all   

ps. la mia WebDir è: / var / www / html