Je suis assez nouveau dans cette entreprise mod_rewrite mais j’aimerais avoir une règle qui me permette d’accomplir les tâches suivantes:
localhost/module_name/ -> localhost/index.php?module=module_name localhost/module_name/module_action -> localhost/index.php?module=module_name&action=module_action localhost/module_name/module_action/parm1 -> localhost/index.php?module=module_name&action=module_action&parm_1=parm1 localhost/module_name/module_action/parm1/parm2 -> localhost/index.php?module=module_name&action=module_action&parm_1=parm1&parm_2=parm2
etc. J’ai réussi à faire fonctionner nom_module et module_action, mais je n’arrive pas à comprendre comment le faire fonctionner avec un seul module ou avec plusieurs parameters. C’est ce que j’ai actuellement:
RewriteEngine on RewriteRule ([a-zA-Z]+)/([a-zA-Z]+) index.php?module=$1&action=$2 RewriteRule ([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)$ index.php?module=$1&action=$2&parm=$3
La première règle semble fonctionner mais elle se brise sur la seconde.
Toute aide sera grandement appréciée.
Vous pouvez essayer ceci:
RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^/([^/]+)/?([^/]*)?/?([^/]*)?/?([^/]*)?/? [NC] RewriteRule .* index.php?key1=%1&key2=%2&key3=%3&key4=%4 [L]
Cartes en silence
http://localhost/val1/
jusqu’à
http://localhost/val1/val2/val3/val4
À:
http://localhost/index.php?key1=val1
jusqu’à
http://localhost/index.php?key1=val1&key2=val2&key3=val3&key4=val4
valN
valeurs valN
entrantes ne sont pas vides dans l’URL de substitution.
index.php
est considéré comme une chaîne fixe.
Pour une redirection permanente, remplacez [L] par [R=301,L]
,
Nombre maximum de parameters = 4.