2009-07-30 6 views
0

quand je créé mon site que je décidé d'ajouter index.html à l'URL, mais maintenant j'ai des problèmes avec quand les gens enlèvent les index.html et essayer d'accéder au dossier ...problème htaccess avec le nom de fichier

Par exemple:

RewriteRule ^archives/([0-9]+)/([0-9]+)/index.html archive.php?mid=$1-$2 

Donc quand archives/07/2009/ il va provoquer une erreur, comment puis-je éviter cette erreur? Vive

Répondre

0

Faire le index.html en option dans votre RewriteRule:

RewriteRule ^archives/([0-9]+)/([0-9]+)/(?:index\.html)?$ archive.php?mid=$1-$2 

En outre, dans la règle de réécriture d'origine, vous avez oublié votre fin de l'ancre de chaîne $. Je l'ai ajouté ci-dessus.

+0

fantastique ! Merci –

1

Essayez cette règle witht une option index.html:

RewriteRule ^archives/([0-9]+)/([0-9]+)/(index\.html)?$ archive.php?mid=$1-$2 

Mais je vous recommande de coller juste avec l'une des deux notations, avec ou sans index.html de fuite et de rediriger en cas d'erreur:

# remove index.html 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*/)?index\.html$ /$1 [L,R=301] 

# add index.html 
RewriteRule (.*)/$ $1/index.html [L,R=301] 
+0

** @ Gumbo: ** Vous pouvez faire de 'index \ .html' un groupe non-capturant. –

+0

@Andrew Moore: Les groupes non-capturants ne sont disponibles que depuis Apache 2. – Gumbo

Questions connexes