Bonjour,
veuillez m'excuser si la catégorie n'est pas bonne, j'ai jugé que c'était la meilleure pour traiter mon sujet
alors je m'explique, à la base j'ai des urls comme ça http://monsite/stream?slug=mon-stream
donc pour reformuler les urls, dans mon cas
http://monsite.fr/stream/slug/mon-stream j'ai utiliser url rewriting
Options +FollowSymLinks
RewriteEngine On
RewriteRule stream/slug/(.*)/ stream.php?slug=$1
RewriteRule stream/slug/(.*) stream.php?slug=$1
le problème c'est qu'avec mon script php il me dit que la chaîne n'existe pas
if(!empty($_GET['slug'])){
$slug = $_GET['slug'];
$req = $pdo->prepare("SELECT * FROM channels WHERE slug = ?");
$pdo->exec("SET CHARACTER SET utf8");
$req->execute([$_GET['slug']]);
$result = $req->fetch();
if(!$result){
require 'views/stream/deleted.php';
require_once 'views/partials/_scripts.php';
exit();
}
}else{
require 'views/stream/deleted.php';
require_once 'views/partials/_scripts.php';
exit();
}
Et donc, à ce moment la je bloque complêtement ...
Si vous avez une idée, je prend.
Merci
Ce que tu peux faire, c'est récuperer ton url, et la parser avec une regexp.
//Cheche dans l'url tout ce qu'il y a après slug/, et remplis la variable $slug
preg_match('/(?<=slug\/).*/', $_SERVER['REQUEST_URI'], $slug);
$slug sera un array, pense à bien récuperer ce que tu souhaite à l'intérieure ($slug[0] par exemple).
Bonjour,
je pense que la ré-écriture doit + etre comme ceci:
RewriteRule ^stream/slug/(.*)$ stream?slug=$1 [L]
Bonjour.
Tu peux créer un routeur par exemple, de manière à interpréter ta ré-écriture d'url depuis ton application en PHP :
Tutoriel Vidéo PHP » Créer un Router.
Ou bien d'utiliser une librairie qui en utilise un, comme par exemple Slim.
Salut Spiker,
merci pour ta réponse, ça fonctionne bien j'ai juste une dernière demande, pourrais-tu modifier le code que tu m'as donné pour que l'url soit de cette façon:
http://monsite.fr/stream/mon-stream
J'ai enlever le /slug/ car ça faisais pas très beau
Merci beaucoup!
tu n'as pas compris
Les urls sont comme ça la: monsite.fr/stream/slug/mon-stream
et j'aimerais enlever le slug pour que ça fasse comme ça: monsite.fr/stream/mon-stream
Bein c'est exactement ce que je dis...
Tu remplace
preg_match('/(?<=slug\/).*/', $_SERVER['REQUEST_URI'], $slug);
par
preg_match('/(?<=stream\/).*/', $_SERVER['REQUEST_URI'], $slug);