[Url Rewriting] N'aurais je rien compris à la façon de coder le htaccess ?

Nouveau WRInaute
Bonjour à tous,
Venant de rejoindre le rangs des webmaster en herbe, je dois faire un site pour ma nouvelle boite (gg moi :D)

J'ai donc des pages internet du style http://www.monsite.com/?pages=accueil, car mon index fait un include de accueil.php qui se trouve dans un dossier pages sur la racine (pages/accueil.php).

je veux donc afficher l'adresse comme cela : http://www.monsite.com/accueil

J'ai alors écrit dans mon htaccess (qui se trouve sur la racine du site avec l'index donc) :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)/$ /?pages=$1 [L]

Donc j'ai voulu écrire que la variable page sera la suite du lien. Malheureusement ça ne fonctionne pas, j'ai contacté l'hébergeur qui m'a confirmé que le rewriting était activé sur le serveur. Alors peut être pourriez vous m'aider à comprendre où j'ai fait faux ?

Cordialement,
Hadrien

Ah oui et question annexe, pour limiter le nombre d'emails envoyé de ma page contact, j'ai fait un session à la connexion du site qui compte juste le nombre de mail envoyé, rien de plus (faute de BDD pour compter), cette session ne va pas affecter mon référencement ?
 
WRInaute passionné
tel que c'est écrit dans le .htaccess l'url doit contenir un / à la fin. C'est donc -http://www.monsite.com/accueil/ que tu dois appeler.
 
Nouveau WRInaute
Bon j'edit ce message au fur et à mesure de mon avancement,
Donc j'ai vu que j'avais pas mis le bon htaccess ds ma racine, donc j'ai bien mis celui écrit dans mon 1er post, sans le / de fin, et j'ai une erreur 500, cela viendrait il du fait qu'il faudrais que je refasse un htaccess ds le dossier pages ? J'ai tester l'urlrewriting fonctionne bien sur le serveur pourtant
 
WRInaute passionné
ca doit boucler. Essaye avec :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{QUERY_STRING} !pages=
RewriteRule ^(.*)/$ /?pages=$1 [L]
 
Nouveau WRInaute
ah oui ça fonctionne merci beaucoup, j'ai plus d'erreur 500, cependant j'ai plus de style, le css est introuvable :( il me charge mon index à la place du fichier des style et javascript dans mes balises link et script
 
WRInaute passionné
il faut ajouter une condition pour exclure les fichiers ou les répertoires existants :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !pages=
RewriteRule ^(.*)$ /?pages=$1 [L]
attention car avec ca il n'y a plus d'erreur 404 puisque toutes les pages qui n'existent pas sont redirigées vers /?pages=xxx
Si tu veux garder les erreurs 404 il faut le gérer dans index.php avec la fonction header() :
Code:
// Si "pages" n'existe pas =>
header('Status: 404 Not Found', true, 404);
 
Nouveau WRInaute
Merci beaucoup, tu es doué :)
Mais faire des pages 404 comme ça ne pose pas de problèmes ? ça fait pas un peu bricolage ?
 
WRInaute passionné
si tu mets un .htaccess qui réécrite toutes les urls, il n'y a plus d'erreur 404.
Tu as alors deux solutions : gérer les 404 comme je l'ai indiqué (tu peux aussi ajouter le contenu d'une page personnalisée après l'header) ou mettre une règle de réécriture qui ne marche que pour les "pages" qui existent.
 
Discussions similaires
Haut