Prohibido No tienes permiso para acceder / en este servidor

Todo lo que quería hacer hoy era escribir una regla de redireccionamiento a una subcarpeta, por ejemplo: ingresas la URL: example.com y te redirigen a example.com/subfolder

Un simple deseo. Traté de encontrar una solución en internet. Internet me dijo que agregue un archivo .htaccess en la raíz de htdocs con:

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

Hice esto. Pero sin éxito, obviamente, no me dijeron que tenía que descomentar el módulo en httpd.conf :

 LoadModule rewrite_module modules/mod_rewrite.so 

Así que hice esto también. Sin éxito de nuevo. No me dijeron que tenía que cambiar mi httpd.conf para que el archivo .htaccess estuviera habilitado:

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

De nuevo, no tuve éxito porque recibí este error al ingresar la URL:

Prohibido No tiene permiso para acceder / en este servidor.

Ahora estoy atascado y no pude encontrar más soluciones en internet. Solo estoy ejecutando Apache 2.4 en mi máquina con Windows 7, por razones privadas.

Encontré mi solución gracias a Error con .htaccess y mod_rewrite
Para Apache 2.4 y en todos los archivos * .conf (por ejemplo, httpd-vhosts.conf, http.conf, httpd-autoindex.conf ..etc) use

 Require all granted 

en lugar de

 Order allow,deny Allow from all 

Las directivas Order y Allow están en desuso en Apache 2.4 .

Método de TRABAJO {si no hay otro problema que no sea la configuración}

Por defecto, Appache no está restringiendo el acceso desde ipv4. (ip externo común)

Lo que puede restringir son las configuraciones en ‘httpd.conf’ (o ‘apache2.conf’ según su configuración de apache)

Solución:

Reemplaza todo:

  AllowOverride none Require all denied  

con

  AllowOverride none # Require all denied  

por lo tanto eliminando todas las restricciones dadas a Apache

Reemplazar Require local con Require all granted en el directorio C:/wamp/www/

  Options Indexes FollowSymLinks AllowOverride all Require all granted # Require local  

La solución es simple.

Si intenta acceder al servidor utilizando su dirección IP local y recibe un mensaje de error que dice Forbidden, no tiene permiso para acceder / en este servidor

Simplemente abra su archivo httpd.conf desde (en mi caso C:/wamp/bin/apache/apache2.2.21/conf/httpd.conf )

Buscar

.... .....

Reemplazar Permitir desde 127.0.0.1

a

Permitir de todos

Guarde los cambios y reinicie su servidor.

Ahora puede acceder a su servidor usando su dirección IP

¡El problema está en el archivo https.conf!

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

El error ocurre cuando hash (#) se elimina o se mezcla con. Estas dos líneas deberían aparecer como se muestra arriba.

Encontré mi solución en Apache / 2.2.15 (Unix).

Y gracias por la respuesta de @QuantumHive:

Primero: encontré todo

 Order allow,deny Deny from all 

en lugar de

 Order allow,deny Allow from all 

y entonces:

Yo establecí

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

Elimine la anotación “#” anterior a

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

PD. mi WebDir es: / var / www / html