Je pense que c'est ce que vous cherchez:
RewriteEngine on
RewriteRule ^/?(.+)/manufacturer/ /$1/ [R=301,QSD]
Cela fonctionne dans la configuration hôte des serveurs http ou dans des fichiers de configuration dynamique (.htaccess
) si le module de réécriture est chargé.
L'interprétation des fichiers de configuration dynamique doit être activée si vous décidez d'utiliser tel. Dans ce cas, ce fichier doit être placé dans le dossier DocumentRoot
de votre serveur http.
Votre description se contredit dans un petit détail: dans la description que vous dites «/fabricant/des symboles », mais l'exemple montre une URL sans ces symboles (notez que les paramètres GET sont pas partie considérée de l'URL). La règle ci-dessus pourrait être légèrement modifiée en fonction de ce que votre exigence précise est ...
Et un soupçon général: vous devez toujours préférer placer ces règles dans la configuration hôte des serveurs http au lieu d'utiliser dynamique fichiers de configuration (".htaccess"). Ces fichiers sont notoirement sujettes aux erreurs, difficiles à déboguer et ils ralentissent vraiment le serveur. Ils sont seulement fournis comme une dernière option pour les situations où vous n'avez pas de contrôle sur la configuration de l'hôte (lisez: fournisseurs de services d'hébergement vraiment bon marché) ou si vous avez une application qui repose sur l'écriture de ses propres règles de réécriture).
QSD - le drapeau provoque 500 erreur de serveur, et RewriteRule^/? (. +)/Manufacturer// $ 1/[R = 301, L] - laissez la chaîne de requête = ((( –
@YuryZheve Vous n'avez pas besoin l'indicateur L pour une redirection externe et le QSD est nécessaire pour supprimer les paramètres GET, puisque QSA est la valeur par défaut (AFAIK) .Ce drapeau est bien documenté, pas la raison pour laquelle il génère une erreur sur votre système – arkascha
https: // httpd .apache.org/docs/trunk/rewrite/flags.html # flag_qsd – arkascha