règles de réécriture complexes htaccess - Par où commencer?
-
21-09-2019 - |
Question
J'ai demandé ici avant mod_rewrite et a obtenu la réponse parfaite, mais maintenant je dois faire quelque chose de plus complexe et vraiment besoin les conseils de quelqu'un qui sait mod_rewrite beaucoup mieux.
Ma règle de réécriture ressemble à ceci jusqu'à présent:
RewriteRule ([a-zA-Z_-]+)/([0-9]?) index.php?cat=$1&page=$2
Et qui montre l'URL comme suit:. /categoryname
et affiche les pages comme /categoryname/1/
Mais je voudrais vraiment modifier la règle de travailler avec les sous-catégories telles que /categoryname/subcategoryname/
et fonctionne toujours avec le système de page (subcat/2/
) mais je ne peux pas sembler envelopper la tête autour de cela.
Il doit ignorer le sous chat récrire si vous êtes sur la principale catégorie etc.
En espérant que quelqu'un peut me aider.
La solution
RewriteRule [a-zA-Z_-]+/([a-zA-Z_-]+)/([0-9]?) index.php?cat=$1&page=$2 [L]
RewriteRule ([a-zA-Z_-]+)/([0-9]?) index.php?cat=$1&page=$2 [L]
Autres conseils
J'utiliser ces règles:
RewriteRule ^([a-zA-Z_-]+)/([a-zA-Z_-]+)/(([1-9][0-9]*)/)?$ index.php?cat=$1&subcat=$2page=$4
RewriteRule ^([a-zA-Z_-]+)/(([1-9][0-9]*)/)?$ index.php?cat=$1&page=$3
Avec l'affirmation pour le début (^
) et la fin de la chaîne ($
) il n'y a pas d'ambiguïté d'avoir une de ces règles d'application accidentelle. Et la partie est (([1-9][0-9]*)/)?
pour la pagination en option.