2012-08-10 20 views
28

He leído casi todo lo posible para este problema y no he podido encontrar nada que solucione mi problema. Esta es erorr ingrese estoy recibiendo: Opciones FollowSymLinks o SymLinksIfOwnerMatch está apagado lo que implica que está prohibido directiva RewriteRule: /var/www/vhosts/site.com/httpdocs/cgi-bin/cron.plOpciones FollowSymLinks o SymLinksIfOwnerMatch está desactivado

Cuando accediendo al sitio recibo 403 Prohibido "No tienes permiso para acceder a este documento". error.

He modificado mi .htaccess tener esto:

Options +FollowSymLinks +SymLinksIfOwnerMatch 
AddDefaultCharset utf-8 
RewriteEngine on 
RewriteCond %{HTTP:Authorization} ^(.*) 
RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1] 
. 
. 
. 

También he añadido esto a httpd.conf:

AddHandler cgi-script .cgi 
AddHandler cgi-script .pl 

<Directory /> 
Options -ExecCGI FollowSymLinks -Includes -IncludesNOEXEC -Indexes -MultiViews -SymLinksIfOwnerMatch 
AllowOverride All 
</Directory> 

Realmente lo que puedo hacer ahora?

Respuesta

11

Nota esto desde el apache docs for option:

opciones de mezcla con un + o - con los que no tienen no es una sintaxis válida, y serán rechazadas durante el arranque del servidor en la comprobación de sintaxis con un aborto .

Está mezclando opciones con +/- y sin en su bloque (es decir, consulte FollowSymLinks).

Tuve este mismo error exacto que aparece hoy en uno de mis sitios donde había olvidado agregar un "+" al frente de una opción. Agregué el "+" y ahora funciona.

16

Observe que el directorio donde está viviendo su aplicación web no está incluido en otro directorio principal que ha restringido FollowSymLinks.

La solución es habilitar FollowSymLinks en el directorio superior (directorio principal) o mover su aplicación web a un directorio fuera del alcance del "no FollowSymLinks" en el directorio principal.

Por ejemplo, el siguiente apache configuración podría ser un problema y seguramente se reproduce el problema:

<VirtualHost *:80> 
     ... 
     <Directory "D:/"> 
     Options Indexes 
     </Directory> 

     <Directory "D:/mywebfolder/"> 
     Options Indexes FollowSymLinks 
     </Directory> 
     ... 
    </VirtualHost> 

Para evitar este problema:

<VirtualHost *:80> 
     ... 
     <Directory "D:/"> 
     Options Indexes FollowSymLinks 
     </Directory> 
     ... 
     ... 
    </VirtualHost> 

o mover su D:/mywebfolder/ a otra unidad, por ejemplo, E:/mywebfolder

1

poner esto en su directorio raíz:

<Directory /> 
    #AllowOverride none 
    Require all denied 
    Options FollowSymLinks 
    Options SymLinksIfOwnerMatch 
</Directory> 

<Directory "root"> 
    Options FollowSymLinks 
    Options SymLinksIfOwnerMatch 
</Directory> 
+1

¿Cuál debe ser el nombre de archivo de eso? – brentonstrine

4

Recientemente tuve un error similar y lo fijó para mí. Una posible causa raíz para este problema es que la carpeta de destino (a la que se realiza la reescritura), mencionada en el texto de error, no tiene establecida la opción FollowSymLinks. De su mensaje de error, veo que esta carpeta es: /var/www/vhosts/site.com/httpdocs/cgi-bin/

En este caso, puede usar en..htaccess de esa carpeta específica:

Options +FollowSymLinks 

Esta configuración anterior simplemente añadirá los FollowSymLinks para esta carpeta en la parte superior de las opciones existentes (que es lo que + significa que sólo se suma esta opción.).

Ejemplo:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    Options +FollowSymLinks 
</IfModule> 

Este fue el caso en el que tuve el error y esto fue lo que me fijo. En mi caso, había una carpeta diferente (no cgi-bin) y un archivo diferente (un archivo PHP).

Advertencia:

  • asegurarse de que realmente desea volver a escribir URL para que apunte a cgi-bin. Si tiene scripts importantes aquí, puede tener un impacto en la seguridad y es posible que no desee que se realice esta reescritura. Si realiza esta configuración en cgi-bin, las personas podrían ver la salida de sus scripts en cgi-bin, lo que podría no ser bueno a menos que sepa lo que está haciendo.

Notas:

  • Tenga en cuenta que dependiendo de la configuración configuración/navegador local, actualizando el .htaccess puede no proporcionar el efecto en el navegador al instante, cuando se escribe en la URL, y puede mostrar el mismo resultado de inmediato, sin considerar sus modificaciones a .htaccess. En este caso, es posible que deba reiniciar el navegador para ver el efecto de sus modificaciones. Para los principiantes esto puede consumir mucho tiempo al tratar de corregir y confundir por qué no funcionará. Además, si modifica httpd.conf (no es el caso en mi publicación), debe reiniciar el servidor web.

  • Mientras investigaba la reparación de mi error, noté en la web que este error también se ha presentado para algunas personas, para una instalación de Plesk, en cuyo caso la solución a ese problema específico era editar/etc/apache2/mods -enabled/dir.conf, y actualizar DirectoryIndex, y mover index.php antes de index.pl.

5

tuve este problema y finalmente encontrado que debido a que había configurado PHP con Fast-CGI en lugar de como un módulo de Apache, que tenía que actualizar el \conf\extra\httpd-fcgid.conf y luego se añadieron FollowSymLinks a este bloque

<Files ~ "\.php$"> 
Options ExecCGI FollowSymLinks 
AddHandler fcgid-script .php 
FcgidWrapper "d:/php/php-cgi.exe" .php 
</Files> 

Espero que esto ayude a alguien y ahorre las horas que perdí.

+0

esto lo resolvió para mí, ¡10 veces! – w00t

+0

¡¡¡Salvavidas !! ¡¡Gracias!! – jiraiya

+0

@jiraiya Me he mudado a Caddy ahora - eche un vistazo https://caddyserver.com/ –

Cuestiones relacionadas