web-dev-qa-db-fra.com

Wordpress annule les variables GET (page_id) définies dans HTACCESS.

J'ai un site wordpress extrêmement volumineux qui pousse Wordpress à ses limites. Il utilise un certain nombre de pages/catégories et beaucoup de règles .htaccess pour organiser les différentes sections du site (il s’agit d’un grand magazine).

Un problème particulier me stoppe vraiment. J'ai les règles suivantes dans .htaccess ...

RewriteRule ^(cat|tag)/([^\/]+)(/?)$ index.php?page_id=3&s1=$2 [L,QSA]
RewriteRule ^xyz/([^\/]+)(/?)$ index.php?page_id=6&s1=$1 [L,QSA]

Maintenant, si l’argument fourni à la page cat/tag n’a pas de slash final, cela fonctionne toujours. Si l'argument est suivi d'une barre oblique et , la balise en question correspond aux entrées d'une table autre que Wordpress qui fonctionne avec la page 'xyz', Wordpress charge cette page à la place, même si la balise est présente.

J'ai testé que les règles fonctionnent toujours, et elles le font. Wordpress obtient toujours le bon $ _GET ['page'] de 3 et la balise slug comme $ _GET ['s1'], et décide néanmoins d'afficher une page totalement différente si ce qui précède est vrai.

Tout est fait dans .htaccess, les permaliens dans wordpress sont complètement désactivés. Comment puis-je arrêter le formulaire WP et décider en fonction de l'identificateur de page_id qu'il a été appelé à utiliser.

1
beseku

Le routage d'URL de WordPress est vraiment difficile à utiliser. J'attends avec impatience le jour où il sera remplacé par quelque chose de plus rationnel (et j'espère que ce sera moi qui rédigerai le code pour le remplacer, mais je m'éloigne du sujet ...)

Cependant, je pense que votre premier problème est d'essayer de tout faire dans .htaccess. J'ai probablement plus d'expérience en création d'URL et en réécriture d'URL que n'importe qui d'autre que je connais et je n'essaierais vraiment pas de lutter contre WordPress avec .htaccess; vous n'obtiendrez probablement que le genre de résultats qui vous rendent fous. Au lieu de cela, j'essayerais de gérer le routage des URL depuis WordPress et d'utiliser des points d'ancrage lorsque vous devez remplacer quelque chose que WordPress fait vraiment mal.

Cependant, pour que je comprenne parfaitement ce que vous essayez d'accomplir et que vous recommandiez une solution appropriée, j'aimerais voir une carte complète des URL que vous avez sur votre site et de celles que vous souhaitez.

Enfin, j'ai lié quelques questions et réponses connexes ci-dessous. Ils ne répondent pas directement à votre question, mais ils peuvent vous donner un aperçu. Le dernier concerne l’adaptation de WordPress à un trafic élevé.

2
MikeSchinkel