web-dev-qa-db-fra.com

Quelle est la syntaxe correcte pour la redirection .htaccess 301 d'une URL basée sur une requête vers une nouvelle URL?

Je souhaite configurer 301 redirections vers de nouvelles URL et j'essaie de le faire avec la fonction de redirection de cPanel. Pour une raison quelconque, les demandes ne sont pas traitées correctement et je suppose que cela est dû au fait que les anciennes URL sont basées sur des requêtes.

Il semble que je devrai modifier mon fichier . Htaccess manuellement et ma question est la suivante: quelle est la syntaxe correcte à utiliser, en fonction des exemples donnés ci-dessous.

http://www.mydomain.com/products.asp?category=42 a besoin d'être redirigé vers http://www.mydomain.com/products/new-category.

2
MrPaulDriver

cPanel ne pourra pas non plus déterminer s'il existe d'autres directives en conflit dans votre fichier .htaccess.

La RewriteRulemotif correspond à la partie URL-path de l'URL. Vous devrez donc utiliser une directive RewriteCond avec la variable %{QUERY_STRING}.

RewriteCond %{QUERY_STRING} =category=42
RewriteRule ^products\.asp /products/new-category? [R=301,L]

Le = au début du motif RewriteCond effectue essentiellement une correspondance exacte (chaîne) (si cela est requis).

Le ? à la fin de la substitution RewriteRule supprime la chaîne de requête de la demande, sinon elle sera transmise inchangée.

1
MrWhite