Nous avons une page qui affiche les produits en fonction d'une variable de chaîne de requête q
.
Comme ça:
http://example.com/px/?q=ninja-coffee
Nous aimerions afficher l'URL de ces pages comme ceci:
http://example.com/px/ninja-coffee/
Jusqu’à présent, nous n’avons pas réussi à le faire fonctionner. Certains d’entre vous ont-ils des idées?
.htaccess
ou functions.php
(nous avons un thème enfant). Nous sommes heureux tant que ça marche/px/
)Dans votre .htaccess
, ajoutez la règle suivante entre les balises <IfModule mod_rewrite.c>
:
RewriteCond %{QUERY_STRING} ^q=(.*)$ [NC]
RewriteRule ^/?px/(.*)$ px/%1? [L,R=301]
Basé sur le .htaccess
par défaut généré par WordPress, il devrait maintenant ressembler à ce qui suit avec votre RewriteRule
personnalisé:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Custom Rules
RewriteCond %{QUERY_STRING} ^q=(.*)$ [NC]
RewriteRule ^/?px/(.*)$ px/%1? [L,R=301]
</IfModule>
Effacez le cache de votre navigateur et tout domaine qui suit cette structure:
http://example.com/px/?q=SLUG
Va rediriger vers:
http://example.com/px/SLUG
Cela a été vérifié et testé de mon côté en utilisant le testeur htaccess .