Question .htaccess
Résolu
doctorpower
Messages postés
360
Date d'inscription
Statut
Membre
Dernière intervention
-
doctorpower Messages postés 360 Date d'inscription Statut Membre Dernière intervention -
doctorpower Messages postés 360 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerai ajouter a certaines URL de mon site des variables "inutiles" par exemple:
site.com/185/partie-inutile-de-l-url
au lieu de:
site.com/185
dans mon fichier .htacces j'ai essayer:
RewriteRule ^id/([0-9]+)/([0-9a-zA-Z]-_/....)$ ............
au lieu de:
RewriteRule ^id/([0-9]+)$ ..............
mais ca ne fonctionne pas...
je pense que c'est possible etant donne que seule l'id est importante (185 dans l'exemple) mais je ne sais pas comment faire...
merci d'avance
j'aimerai ajouter a certaines URL de mon site des variables "inutiles" par exemple:
site.com/185/partie-inutile-de-l-url
au lieu de:
site.com/185
dans mon fichier .htacces j'ai essayer:
RewriteRule ^id/([0-9]+)/([0-9a-zA-Z]-_/....)$ ............
au lieu de:
RewriteRule ^id/([0-9]+)$ ..............
mais ca ne fonctionne pas...
je pense que c'est possible etant donne que seule l'id est importante (185 dans l'exemple) mais je ne sais pas comment faire...
merci d'avance
A voir également:
- Question .htaccess
- Htaccess - Forum Référencement
- Problème avec .htaccess - Forum Webmastering
- .Htaccess localhost - 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 Mozilla Firefox
- Restriction avec .htaccess ✓ - Forum Référencement
2 réponses
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'); } ?>