2010-01-24 6 views
0

J'ai actuellement des liens sur mon site Web sous forme de: - http://example.com/products.php?cat=Xhtaccess Rediriger vers le même fichier, mais afficher l'URL différente sans avoir à changer les liens internes?

Je veux qu'une fois pris à la destination du lien, l'URL affiche quelque chose comme: - http://example.com/new.

Le fichier sur mon serveur est le même fichier, mais seulement l'URL devrait apparaître plus propre sans que je doive changer l'un des liens.

J'ai essayé ce qui suit, mais il lui est seulement utile si je explicitement changé les liens internes: -

RewriteRule ^new$ products.php?cat=10

+0

Voulez-vous dire que lorsque vous passez la souris sur un lien, il montre products.php? Cat = 10? Si c'est le cas, oui vous devez changer vos liens vers/new –

+0

Je veux principalement que la destination de la page ne soit pas products.php? Cat = 10 mais plutôt/new, où le contenu de/new est exactement le même et sans que je doive créer un nouveau fichier. Ce serait bien aussi, mais pas indispensable, lorsque vous passez la souris sur les liens, cela n'affiche pas products.php? Cat = 10. – nitbuntu

Répondre

0
RewriteCond %{QUERY_STRING} =cat=10 
RewriteRule ^products.php$ new [R,L] 

RewriteRule ^new$ products.php?cat=10 [L] 
+0

J'ai essayé ceci mais je devrais encore changer l'adresse de lien dans mes dossiers de php afin de m'amener à http://example.com/new. Je veux une solution où je n'aurais pas à changer les liens internes. – nitbuntu

+0

La première règle réécrit 'products.php? Cat = 10' à' new' dans le navigateur, et la seconde règle réécrit 'new' en' products.php? Cat = 10' en interne dans httpd. –

+0

Le fait est que même après avoir entré ceux-ci dans mon .htaccess, quand je clique sur un lien vers products.php? Cat = 10, je ne suis pas pris à/new. – nitbuntu

0

Vérifiez l'URL demandée d'origine dans le request line:

RewriteCond %{THE_REQUEST} ^GET /products\.php\?([^&]*&+)*cat=X 
RewriteRule ^products\.php$ /new? [L,R=301] 

Mais ce sera probablement plus facile si vous faites cela avec PHP (voir $_SERVER['REQUEST_URI']).

Questions connexes