Syntaxe .htaccess

Nouveau WRInaute
Bonjour,

je viens de mettre à jour mon rewritte.
J'ai supprimé les id dans l'url me permettant de récupérer les variables passées dans l'url avec le htaccess.

Désormais mon rewritte fonctionne ainsi avec deux formats d'url

url de la page d'acceuil : www.exemple.com/article.html
url d'un article : www.exemple.com/article-titredelarticle.html
url de la page 2 d'un article : www.exemple.com/2-article-titredelarticle.html

donc désormais je parse l'url et je fais ma requete pour avoir la variable permettant d'afficher le bon article

dans mon htaccess j'ai mis cette ligne :
RewriteRule ^[^.]+\.html$ article.php [QSA,L]

Donc tout fonctionne bien mais je voudrais savoir si c'est la syntaxe exacte à utiliser.

Merci :)
 
WRInaute impliqué
excuse-moi, mais les URL sont de type xxx.html?var1=val1&...etc ??
Si oui, a quoi te sert le rewrite?
Sinon, le drapeau QSA ne sert à rien
 
Nouveau WRInaute
les url sont de type :


article.php?var1=var1&var2=var2 etc ...

merci pour le qsla j'avais oublié que j'avais retiré les sessions

donc le rewritte me sort pour passer de .php à .html si je me trompe pas
 
Nouveau WRInaute
Le problème c'est que si je met pour la page principale (article.html)

et bien cette page est accessible par n'importe quoi
par exemple

dhjhsdjkhjskhdj.html affiche bien article.html
 
Nouveau WRInaute
hhummm exact je l'ai déjà fait qd la variable page et categorie etit défini

faut que je rajoute ce controle
sinon le htaccess est correct alors ?
 
WRInaute occasionnel
mod_jc a dit:
RewriteRule ^[^.]+\.html$ article.php [QSA,L]

J'utiliserais plutot ^[^/]+\.html$ que ton [^.]+ qui est assez inhabituel. Le [^/] devrait éviter que cela fonctionne aussi avec des sous-répertoires, ce que tu ne veux probablement pas ?

Ce début d'url que tu remplaces par article.php, tu ne comptes pas t'en servir du tout pour le virer purement et simplement ?
 
WRInaute occasionnel
dans ton exemple, tu donnes comme règle :
RewriteRule ^[^.]+\.html$ article.php [QSA,L]

quand tu fais ça, tu perds tout bonnement le nom de fichier original, par exemple, mapage.html devient article.php mais tu perds l'info "mapage" définitivement... Je me demande à quoi ça sert du coup.
 
Discussions similaires
Haut