2009-09-17 9 views
0

J'ai une URL que je veux raccourcir avec un mod_rewrite.Amélioration de cet URL avec .htaccess et mod_rewrite

Dans sa forme la plus laide, il ressemble à:

/img.php?i=15&a=92 

Idéalement, il ressemblerait à ceci:

/img/15/92 

Le problème est parfois peut-être juste:

/img.php?i=15 

Dans ce le cas où la personne entrera:

/img/15 

Je pense que je besoin d'un mod_rewrite comme ceci:

RewriteRule ^/img/(.*)/(.*)$ /img.php?i=$1&a=$2 

que j'imagine ne fonctionnera que lorsque les deux variables sont dans l'URL et pas seulement la version abrégée.

Comment faire une réécriture simple qui fonctionne pour les deux, ou comment faire 2 sans annuler l'autre?

Répondre

2

Essayez cette règle:

RewriteRule ^img/([0-9]+)(/([0-9]+))?$ img.php?i=$1&a=$3 

Lorsque vous utilisez mod_rewrite dans un fichier .htaccess, vous devez supprimer le préfixe de chemin par répertoire à partir du motif (dans ce cas, le premier /). Parce que mod_rewrite le fait aussi et le remet après le processus de réécriture.

+0

Je ne sais pas comment vous allez de 1 $ à 3 $ sans 2 $ - mais ça marche. légende Gumbo – willdanceforfun

+0

@cosmicbdog: Le deuxième groupe est l'optionnel '(...)?' qui contient le troisième groupe. – Gumbo

Questions connexes