Je travaille actuellement sur un projet WordPress et suis un peu bloqué sur les règles de réécriture .htaccess.WordPress add_rewrite_rule pour une chaîne renvoyant 404
Code règle de réécriture WordPress Ma est la suivante:
if (!function_exists('check_string_id_rule')){
function check_string_id_rule(){
add_rewrite_rule('id-check/([^/]+)','id-check/?id=$1','top');
}
add_action('init', 'check_string_id_rule');
Avertissement: selon la documentation que je suis censé utiliser des allumettes $ [1] au lieu de 1 $. J'ai essayé cela mais, il va simplement mettre la valeur de id à "matches [1]". 1 $ semble faire l'affaire, dans une certaine mesure.
Quand je navigue à mywebsite.com/id-check/12 tout fonctionne bien et mon id a la valeur de 12.
Mes identifiants sont cependant construites sur un certain nombre de caractères contenant des lettres à partir de az, les chiffres de 0-9 et le trait d'union occasionnel '-'.
Si je navigue vers mywebsite.com/id-check/12a-5, je suis redirigé vers une page vide. WordPress semble me rediriger vers une page qui n'existe pas. Il essaie de me rediriger vers la page/12a-5. Aller à mywebsite.com/id-check/?id=12-a5 fonctionne comme prévu.
Pourquoi ma règle n'est-elle pas appliquée? J'ai vérifié le fichier .htaccess et il ne semble pas y avoir de règles concurrentes.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteRule ^id-check/([^/]+) /id-check/?id=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Est-ce un peu bizarre WordPress, ou est-ce que je manque quelque chose ici?
Nous vous remercions à l'avance,
Stijn van der Pol