2011-10-05 15 views
17

Existe un archivo de índice que funciona. Cuando creo archivo .htaccess con la línea SOLAMENTE:RewriteEngine activado da error 403

RewriteEngine On 

Cualquier página en el servidor me da:

acceso prohibido!

No tiene permiso para acceder al objeto solicitado. O bien es con protección de lectura o no es legible por el servidor.

Si cree que se trata de un error del servidor, póngase en contacto con el webmaster. Error 403 mysite.com Mar Sep 5 2011 22:25:25 Apache/2.2.3 (Linux/SUSE)

Algo de información del servidor:

módulos cargados núcleo prefork http_core mod_so mod_actions mod_alias mod_auth_basic mod_authn_file mod_authz_host mod_authz_groupfile mod_authz_default mod_authz_user mod_authn_dbm mod_autoindex mod_cgi mod_dir mod_env mod_expires mod_include mod_log_config mod_mime mod_negotiation mod_setenvif mod_ssl mod_suexec mod_userdir mod_rewrite mod_php5 versión

Apache:

SERVER_SOFTWARE Apache/2.2.3 (Linux/SUSE)

También hizo esto:

Options FollowSymLinks 

En la sección Directorio de httpd.conf

Log dice solo hecho de Error, no razones:

89.112.xx.x - - [05/Oct/2011:22:32:34 +0200] "GET /info.php HTTP/1.1" 403 1040 "-" "Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1" 
::1 - - [05/Oct/2011:22:32:45 +0200] "GET/HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)" 

Gracias por cualquier ayuda!

+0

Por favor, compruebe el enlace a continuación. Le ayudará a http://stackoverflow.com/questions/22621643/turning-rewriteengine-on-creates-403-error-how-to-turn-on-followsymlinks#answer-22623427 –

Respuesta

2

La causa más probable es que su archivo conf principal tenga los permisos restringidos. ¿Tiene una línea como:

<Directory /> 
    AllowOverride None 
</Directory> 

en su archivo conf principal? Esto evitará que pueda cambiar básicamente cualquier cosa utilizando un archivo .htaccess.

Puedes encontrar más acerca de apache permissions en la página web.

+0

sí, había línea "AllowOverride None", que hemos eliminado, reinicie Apache, pero todavía me da 403. Aquí está la sección de directorio actual: Opciones FollowSymLinks (Aquí estaba AllowOverride None) Orden negar, permiten denegar de todos Dmitry

+0

En lugar de eliminar la línea AllowOverride, cámbiela a ALL o a un subconjunto apropiado de la funcionalidad que desee. Hay más información sobre esas opciones en el [sitio web de apache] (http://httpd.apache.org/docs/1.3/mod/core.html#allowoverride) –

+0

Además, quiere asegurarse de que no tiene otra Declaración del directorio que limita los permisos de anulación en algún lugar de sus archivos conf y que la extensión mod_rewrite está habilitada. –

30

Lugar

Options +SymLinksIfOwnerMatch 

como la primera línea de su archivo .htaccess. Eso solucionó el problema para mí.

+5

'+ FollowSymLinks' es necesario para el motor de reescritura. Si mira Reescrituras por directorio en [documentos de apache] (http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html) verá esto. Alternativamente, se puede usar '+ SymLinksIfOwnerMatch', aunque creo que todo esto depende de su configuración de apache, con respecto al rendimiento y la seguridad. – upful

+1

'Options + FollowSymLinks' me ayudó. Gracias. –

+3

Funcionó a las mil maravillas ... Le agradecería que me explicara por qué. –

1

Compruebe en el httpd.conf el bloque de código. Por defecto en un mac es bastante restrictivo.Si es sólo local y que no le importa a la cantidad que puede abrirlo como:

<Directory /> 
    Options All 
    AllowOverride All 
    Order deny,allow 
    Allow from all 
</Directory> 

que podría ayudar, o bien, podrían ser los permisos de archivo a sí mismos. El/var/log/apache2/error_log y/var/log/apache2/access_log también pueden darle más detalles sobre lo que está sucediendo.

Cuestiones relacionadas