2010-08-17 8 views
0

La règle de redirection basée htaccess suivante fonctionne très bien:htaccess redirection - correspondance plus stricte sur 301?

Redirect 301 /content/category/2/24/30/ /new/c/url/ 

Le problème est qu'il fonctionne trop bien. Si un utilisateur se rend à

/content/category/2/24/30/50/50/ 

il redirigera à:

/new/c/url/50/50/ 

Comment puis-je obtenir pour faire un match stricte? Soit rediriger les deux exemples simplement:

/new/c/url/ 

serait bien, sinon ignorer la version longue est également bon.

Merci!

Répondre

3

Redirect correspond à préfixes de chemin et non pas seulement le chemin entier. Si le préfixe de chemin donné correspond au chemin demandé, le chemin restant du préfixe est ajouté au chemin de remplacement.

Il faut donc utiliser RedirectMatch plutôt avec ^ et $ marquant le début et la fin du chemin:

RedirectMatch 301 ^/content/category/2/24/30/$ /new/c/url/ 
0

Et la solution doit être

RedirectMatch 301 ^/content/category/2/24/30/$ /new/c/url/ 

Fondamentalement, vous dites que le 30/est la fin de la chaîne.

Je ne peux pas l'essayer alors laissez-moi savoir si cela ne fonctionne pas.

^ correspond au début d'une chaîne et $ correspond à la fin d'une chaîne.

Lire si vous voulez en savoir plus: http://www.regular-expressions.info/