Bonjour,
Actuellement je veux transformer une URL :
base_path/(en|fr)/suite en base_path/index.php?lang=(fr|en)&page=suite
Pour ce faire, j'ai crée un .htaccess mis dans le dossier base_path (de mémoire) :
Mais tout les liens relatifs PHP et HTML sont brisés ce qui est à la fois compréhensible et incohérent.# erreur 404 -> index.php?page=404
RewritingRules (en|fr)/(.*) index.php?lang=$1&page=$2
Compréhensible pour le HTML car la redirection n'est pas indiquée au client.
Mais incohérent car ce n'est pas à la page de destination de savoir qu'elle est la cible d'une redirection .
Pour corriger cela on pourrait alors mettre des liens absolu au lieu de lien relatif... mais cela n'est pas vraiment une solution "propre".
Une autre solution serait d'utiliser une variable php $base_path qu'on préfixerait devant chaque chemin en php et qu'on donnerait à l'HTML grâce à :
Mais je me demandais si vous connaîtriez une solution plus "propre".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3<head> <base href="<?php echo $base_path; ?>"> </head>
J'ai tenté de faire une redirection : (en|fr)/(en|fr) -> $2
Et un URL rewriting : (.*)/(images|js|...) -> $2
Mais il me semble que la redirection est effectuée avant l'url rewriting.
De plus, je travaille avec WAMP & Google Chrome et certaines règles de redirections/rewriting reste actif même après les avoir supprimé du htaccess, redémarré les services WAMP & Chrome, ce qui me gène un peu pour tester .
Partager