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.
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.
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.
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).