J’ai besoin d’une solution pour mon problème de redirection. Dans le fichier .htaccess
, j’ai ce code:
RewriteEngine On RewriteRule ^category/([a-zA-Z0-9]+) category.php?page=$1 [NC,L,QSA]
Et cela fonctionne pour une requête comme category.php?page=pinturas
et redirect vers category/pinturas
.
Mais si la chaîne a -
comme ceci: category.php?page=aquoso-madeira
elle redirige vers category/aquoso
De l’aide?
category.php?page=aquoso-madeira
Il redirige vers lacategory/aquoso
Étant donné que votre motif RewriteRule
n’inclut pas le trait d’union ( -
), il correspond à tout, mais à l’exclusion du premier trait d’union.
Inclure le trait d’union dans la classe de caractères:
RewriteRule ^category/([a-zA-Z0-9-]+) category.php?page=$1 [NC,L,QSA]
Notez que le tiret ( -
) doit être placé au début ou à la fin de la classe de caractères, car il s’agit d’un caractère spécial qui a un sens différent lorsqu’il est utilisé ailleurs.
Et cela fonctionne pour la requête comme category.php? Page = pinturas et redirect vers la catégorie / pinturas
Notez que cette réécriture fait le contraire de ce que vous décrivez.
Cette règle prend une requête comme category/pinturas
et la réécrit en interne dans category.php?page=pinturas
. (Il n’y a pas de redirection externe ici – qui pourrait être dans une autre partie de votre code?)