2011-07-11 8 views
0

J'ai fait du masquage d'URL et tout fonctionne très bien. J'ai une question que je suis en train de résoudre maintenant:htaccess url masquage mod rewrite

RewriteRule ^(.*)/(.*)/clubs/(.*)/$ teams.php?competition=$1&season=$2&teamid=$3 

avec ce qui précède, je peux accéder à la même page 2 façons, www.domain.com/premier-league/2010-2011/arsenal/ et www.domain.com?competition=premier-league&season=2010-2011&teamid=arsenal

est-il un moyen dans ma règle de réécriture, je peux rediriger la URL (301 idéalement) est quelqu'un le fait à travers la manière désordonnée "www.domain.com?competition=premier-league&season=2010-2011&teamid=arsenal"?

Merci à l'avance

+0

J'aime Arsenal .. –

Répondre

0

Si vous ajoutez une règle de réécriture après celui-ci qui correspond à votre modèle « inverse » et marque tant que la règle de ast [L], qui pourrait fonctionner. Je réécris d'abord l'URL pour inclure la chaîne de requête, et [C] hain celui-ci à la règle suivante. Après cela, nous [R] edirect le navigateur.

RewriteRule ^(.)/(.)/clubs/(.*)/$ teams.php?competition=$1&season=$2&teamid=$3 [L] 
RewriteRule ^(.+) $1%{QUERY_STRING} [C] 
RewriteRule ^teams.php?competition=([a-zA-Z0-9]+)&season=([a-zA-Z0-9]+)&teamid=([a-zA-Z0-9]+)$ $1/$2/clubs/$3/ [R=301,L] 

note Je n'ai pas testé ceci ou la regex de la deuxième règle. Peut-être besoin d'ajuster les gammes de caractères un peu. De plus, je n'ai pas testé la réécriture de la chaîne de requête dans la deuxième règle.

Edit: Voir ici pour certains cas d'usage commun de mod_rewrite: http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

+0

Désolé, mais 'RewriteRule' ne fonctionne pas avec la chaîne de requête de cette façon. – LazyOne

+0

est-il possible de rediriger toutes les pages de mon ancien site vers la page d'accueil de mon nouveau domaine? –

+0

Ah, évidemment! Vous devez l'ajouter en utilisant une chaîne de réécriture. Laissez-moi vérifier si cela fonctionne ... –