2010-01-19 6 views
0

cette rewriterule ne récrire level.php et quand essayer localhost/a/b/115 aaa.html envoyer toutes les demandes à level.php mais localhost/a/b/ est un travail.htaccess RewriteRule problème

pourquoi?

RewriteEngine On 
RewriteRule ^(.*)\/(.*)-(.*).html$ page.php?page=$1&a=$2&b=$3 [QSA] 
RewriteRule ^(.*)$ level.php?q=$1 [QSA] 

Répondre

0

Si votre première règle correspond il va page.php? Page = foo & a = bar & b = 123. Cela correspondra une seconde fois à vos règles et à la seconde règle. Vous pouvez éviter cela en ajoutant les lignes suivantes à votre fichier .htacces.

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]+)\/([a-zA-Z0-9]+)\/([0-9]+)\-([a-zA-Z0-9]+)\.html$ page.php?page=$1&a=$2&b=$3 [L] 
#Prevent the last rule to be applied to page.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ level.php?q=$1 [L]