Question .htaccess
Résolu/Fermé
doctorpower
Messages postés
359
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
4 décembre 2011
-
Modifié par doctorpower le 10/08/2010 à 00:27
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 - 10 août 2010 à 18:24
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 - 10 août 2010 à 18:24
A voir également:
- Question .htaccess
- Question sur le htaccess ✓ - Forum Référencement
- Htaccess ovh ✓ - Forum Référencement
- .Htaccess - Forum Référencement
- .Htaccess ✓ - Forum Référencement
- You don't have permission to access this resource.server unable to read htaccess file, denying access to be safe - Forum Réseaux sociaux
2 réponses
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
10 août 2010 à 12:35
10 août 2010 à 12:35
Salut.
Je pense qu'il faut mettre tous les caractères dans la classe de caractères (entre crochets).
Si c'est pour mettre le titre de la page dans l'URL, il faut quand même utiliser la variable afin de vérifier que le titre soit correcte (en fonction de l'ID de l'article ou de la news). Par exemple :
Dans lire_article.php, récupère le titre au format URL depuis la base de données grâce à l'ID ($_GET['id']).
Ensuite, vérifie que ce que tu as récupéré correspond à $_GET['titre_url'] : si non, alors fait une redirection.
Je pense qu'il faut mettre tous les caractères dans la classe de caractères (entre crochets).
Si c'est pour mettre le titre de la page dans l'URL, il faut quand même utiliser la variable afin de vérifier que le titre soit correcte (en fonction de l'ID de l'article ou de la news). Par exemple :
RewriteRule ^articles/([0-9]+)/(.+)$ lire_article.php?id=$1&titre_url=$2
Dans lire_article.php, récupère le titre au format URL depuis la base de données grâce à l'ID ($_GET['id']).
Ensuite, vérifie que ce que tu as récupéré correspond à $_GET['titre_url'] : si non, alors fait une redirection.
<?php if(isset($_GET['id']) && isset($_GET['titre_url'])) { $pdo = new PDO('mysql:host=localhost;dbname=la_base','root',''); $sql = 'SELECT COUNT(*) AS nb FROM articles WHERE id = '.(int) $_GET['id']; $req = $pdo->query($sql); $req->closeCursor(); $data = $req->fetch(); if($data['nb'] > 0) { $sql = 'SELECT * FROM articles WHERE id = '.(int) $_GET['id']; $req = $pdo->query($sql); $article = $req->fetch(PDO::FETCH_OBJ); if($article->titre_url == $_GET['titre_url']) { include 'templates/lire_article.php'; } else { header('Location: /articles/'.$_GET['id'].'/'.$article->titre_url); header('HTTP/1.1 301 Moved Permanently'); header('Status: 301 Moved Permanently'); } } else { header('Location: erreur-404.php'); header('HTTP/1.1 404 Not Found'); header('Status: 404 Not Found'); } } else { header('Location: erreur-404.php'); header('HTTP/1.1 404 Not Found'); header('Status: 404 Not Found'); } ?>
doctorpower
Messages postés
359
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
4 décembre 2011
68
10 août 2010 à 18:24
10 août 2010 à 18:24
merci avion f-16, j'essaye ca tout de suite