web-dev-qa-db-fra.com

Qu'est-ce que Options + FollowSymLinks?

J'utilise un serveur Lamp sur mon ordinateur. J'ai commencé à utiliser Laravel framework php. Dans mon .htaccess, si j'utilise Options + FollowSymLinks, j'obtiens 500 erreurs. Et si je commente, je dois utiliser index.php dans tous mes adresses ..exemple:

/~ytsejam/blog/public/index.php/login

J'utilise Arch Linux. Existe-t-il un moyen de le résoudre?

edit: J'ai résolu cela en utilisant des hôtes virtuels. Et en supprimant index.php de application/config/application.php dans le dossier laravel.

28
ytsejam

Vous pouvez essayer de rechercher sur Internet les options ".htaccess non autorisées ici".

Une suggestion que j'ai trouvée (en utilisant Google) est:

Vérifiez que votre fichier httpd.conf contient AllowOverride All.

Un fichier .htaccess qui fonctionne pour moi sur Mint Linux (placé dans le dossier Laravel/public):

# Apache configuration file
# http://httpd.Apache.org/docs/2.2/mod/quickreference.html

# Turning on the rewrite engine is necessary for the following rules and
# features. "+FollowSymLinks" must be enabled for this to work symbolically.

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

# For all files not found in the file system, reroute the request to the
# "index.php" front controller, keeping the query string intact

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

J'espère que cela vous aidera. Sinon, vous pourriez poser une question sur le forum Laravel (http://forums.laravel.com/), il y a des gens vraiment utiles qui traînent là-bas.

14
Hendrik Jan

Le paramètre Options FollowSymLinks Vous permet d'avoir un lien symbolique dans votre racine Web pointant vers un autre fichier/répertoire. Avec cette désactivation, Apache refusera de suivre un tel lien symbolique. Options SymLinksIfOwnerMatch Plus sécurisé peut être utilisé à la place - cela vous permettra de vous lier uniquement aux autres fichiers que vous possédez.

Si vous utilisez la directive Options dans .htaccess Avec un paramètre qui a été interdit dans la configuration principale d'Apache, le serveur renverra le code d'erreur HTTP 500.

Les options .htaccess Autorisées sont définies par la directive AllowOverride dans le fichier de configuration Apache principal. Pour autoriser les liens symboliques, cette directive doit être définie sur All ou Options.

En plus d'autoriser l'utilisation des liens symboliques, cette directive est également nécessaire pour activer mod_rewrite dans le contexte .htaccess. Mais pour cela, l'option SymLinksIfOwnerMatch plus sécurisée peut également être utilisée.

5
Marki555

Comment le serveur sait-il qu'il doit extraire image.png du dossier/pictures lorsque vous visitez le site Web et accédez au dossier/system/files/images dans votre navigateur Web? Un soi-disant lien symbolique est le gars qui est responsable de ce comportement. Quelque part dans votre système, il existe un lien symbolique qui indique à votre serveur "Si un visiteur demande /system/files/images/image.png, montrez-lui /pictures/image.png".

Et quel est le rôle du paramètre FollowSymLinks dans ce domaine?

FollowSymLinks concerne la sécurité du serveur. Lorsque vous traitez avec des serveurs Web, vous ne pouvez pas simplement laisser les choses indéfinies. Vous devez dire qui a accès à quoi. Le paramètre FollowSymLinks indique à votre serveur s'il doit ou non suivre les liens symboliques. En d'autres termes, si FollowSymLinks était désactivé dans notre cas, la navigation vers le fichier /system/files/images/image.png retournerait en fonction d'autres paramètres soit l'erreur 403 (accès interdit) ou 404 (introuvable).

http://www.maxi-pedia.com/FollowSymLinks