segments url basé redirect dans modx Evo
-
22-10-2019 - |
Question
Disons que vous avez une URL comme celui-ci est entré dans modx Evo
www.zipit.com.org/reference/toamovie/
si j'ai une page appelée toamovie
dont le parent est appelé reference
mais quand quelqu'un entre dans cette URL, je veux faire l'équivalent de ce
www.zipit.com.org/reference.html?myvar=toamovie
en outre, ou plus important,
Je voudrais que le résultat soit plus comme celui-ci, où wouls de 12
être l'identifiant d'un document
`www.zipit.com.org/reference.html?myid=12'
Je me demande si cela est possible avec tout modx Evolution.I'm penser que cela devrait être possible de faire avec un peu de magie htaccess, bien la première partie de toute façon. Comment pourrais-je obtenir une valeur que le document? Ce serait tout à fait inaccessible avec htaccess, donc il faudrait être une autre partie à ce qui pourrait se brancher sur la base de données et obtenir cette valeur.
La solution
Il devrait être possible avec une coutume plugin appelé l'événement "OnPageNotFound".
<?php
$url = $_SERVER['REQUEST_URI']; //get the url
//split the url into pieces and remove empty values
$pieces = array_filter(explode('/', $url));
//reset the array keys
$temp = array();
foreach ($pieces as $piece) {
$temp[] = $piece;
}
$pieces = $temp;
//basic checking of the url
if (count($pieces) == 2) {
$modx->sendRedirect('http://www.zipit.org/' . $pieces[0] .".html?myid=" . $pieces[1]);
}
?>
rappelez-vous que les plugins ne sont pas enveloppés dans des balises php. que ce script passera des urls incorrectes zipit.org. Certains gestion des erreurs est probablement souhaitable.