2010-11-22 8 views
0
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* ./index.php 

Je pense que cela signifie que si l'URL ne correspond pas à un fichier ou un répertoire sur le serveur, allez dans /index.php?Que signifie ce code .htaccess?

Quelqu'un peut-il confirmer?

+0

oui, sauf qu'il va à l'index.php du répertoire contenant le .htaccess (qui n'est pas nécessairement le même que /index.php que vous écrivez) –

Répondre

2

Oui est la réponse courte. Mais généralement ./index.php a un suffixe/qualificateur [L,QSA], de sorte que la partie requête d'une requête URI lui est également transmise.

+0

Si je devais supprimer cette règle, que se passerait-il dans le cas de fichier/répertoire non trouvé? 404 erreur? – Anthony

+0

Si vous supprimez 'RewriteRule', les précédentes directives' RewriteCond' n'auront aucun effet – stillstanding

+0

Désolé, je veux dire si je supprime le bloc entier? – Anthony

0

Ce que cela fait:

RewriteCond% {} de REQUEST_FILENAME -d

Si elle ne peut pas trouver un répertoire avec le nom

RewriteCond% {REQUEST_FILENAME }! -f

S'il ne trouve pas de fichier w vec le nom

RewriteRule. * ./index.php

Chargez le index.php à côté du fichier .htaccess. Pour répondre à la question de Anthony

 

en ce qui concerne ce qui se passerait si elle où enlevé 12,

Il essaierait d'accéder au répertoire ou un fichier. Si elle échoue, au lieu de par défaut à la index.php il donnerait simplement l'erreur 404 des serveurs Web par défaut. À l'heure actuelle, il permet à l'application d'afficher la page par défaut, ou de gérer la requête de cette façon.