Url réécrite & récupération des paramètres en Get

WRInaute discret
Bonjour,
je travail en local, donc le module mod_rewrite et LoadModule blablabla sont activés,
pour les variables, les espaces ou ' je les ai convertis en -,
jusque là pas de souci, le .htaccess semble nickel (pour ma part :lol:)
mais j'ai quand même l'erreur internal serveur,warum??:cry:
ne vous inquiétez pas le .htaccess se trouve bel et bien à la racine.
Voici mon htaccess :x

#le serveur doit suivre les liens symboliques :
Options +FollowSymlinks
#activation du module de réécriture d'URL
RewriteEngine on
#-------------------------------
#Règles de réécriture d'Url
#-------------------------------

RewriteRule ^fiche_mairie-([0-9]+)-(-[a-z]*)-(-[a-z]*)-([0-9]+)\.html$
/test__mairies/fiche_mairie.php?id_com=$id_com&nom_dep=$nom_dep&nom_mairie=$nom&cp=$cp [L]

RewriteRule ^fiche_mairie-([0-9]+)-(-[a-z]*)-([0-9]+)\.html$
/test__mairies/fiche_mairie.php?id_com=$id_com&nom_dep=$nom_dep [L]

RewriteRule ^fiche_commune-([0-9]+)-(-[a-z]*)\.html$
/test__mairies/fiche_commune.php?num_dep=$num_dep&nom_dep=$nom_dep [L]

RewriteRule ^fiche_mairie-([0-9]+)-([0-9]+)-(-[a-z]*)-([0-9]+)\.html$
/test__mairies/fiche_mairie.php?id_com=$id_com&num_dep=$num_dep&nom_mairie=$nom&cp=$cp [L]

RewriteRule ^mairie-([0-9]+)\.html$
/test__mairies/mairie.php?id_com=$id_com [L]
 
WRInaute occasionnel
rajoutes RewriteBase / après RewriteEngine on :

RewriteEngine on
RewriteBase /

note : si ton site site est dans un sous-dossier :

RewriteBase /le nom de dossier

cordialement
 
WRInaute discret
j'ai mis le site
dans le répertoire www de easyphp !,
et puis dans le dossier www y a un dossier test qui contient test.html avec un .htaccess qui réécrit l'url en inconnu.html comme dans le tuto et ça marche !!
est ce que je devrais quand même faire :
RewriteBase /
 
WRInaute accro
Code:
#le serveur doit suivre les liens symboliques :
Options +FollowSymlinks
#activation du module de réécriture d'URL
RewriteEngine on
#-------------------------------
#Règles de réécriture d'Url
#-------------------------------

RewriteRule ^fiche_mairie-([0-9]+)-(-[a-z]*)-(-[a-z]*)-([0-9]+)\.html$
/test__mairies/fiche_mairie.php?id_com=$1&nom_dep=$2&nom_mairie=$3&cp=$4 [L]

RewriteRule ^fiche_mairie-([0-9]+)-(-[a-z]*)-([0-9]+)\.html$
/test__mairies/fiche_mairie.php?id_com=$1&nom_dep=$2[L]

RewriteRule ^fiche_commune-([0-9]+)-(-[a-z]*)\.html$
/test__mairies/fiche_commune.php?num_dep=$1&nom_dep=$2 [L]

RewriteRule ^fiche_mairie-([0-9]+)-([0-9]+)-(-[a-z]*)-([0-9]+)\.html$
/test__mairies/fiche_mairie.php?id_com=$1&num_dep=$2&nom_mairie=$3&cp=$4 [L]

RewriteRule ^mairie-([0-9]+)\.html$
/test__mairies/mairie.php?id_com=$1 [L]

Ca marchera sans doute mieux ... le .htaccess va pas reconnaître tes variables issues de ton php ...
 
WRInaute discret
je viens de le faire, mais si je passe par l'url non réécrite cela fonctionne
mais pas les url réécrites
,est ce qu'il faut que je réécrits toutes les pages php en html ?
& quand j'appelle des pages par include et require_once,cela pose un problème pour la réécriture ?
 
WRInaute accro
Non, laisse tes pages en .php, c'est le but de la réécriture d'URL ..
Si ça ne fonctionne pas après, c'est que tes règles ne sont pas correctes.
 
WRInaute discret
donc si je comprend bien dans le htaccess il faut que je ne mette que les liens (qui se trouve dans mes page .php) où j'envoie des variables avec la méthode Get ? disont que j'ai un lien dans pageA.php qui renvoie une variable sur pageN.php et que dans pageB.php j'ai le même lien avec variable qui renvoie sur pageN.php , il faut que dans le htaccess le lien n'apparait qu'une fois?
désolé mais j'ai du mal à comprendre zui encore "débutant"
 
WRInaute accro
alors un exemple s'impose :

RewriteRule ^page-([0-9]+)-([0-9]+)\.html$
/page.php?id=$1&nb=$2[L]

La règle ci desuss indique au serveur de traiter l'URL
/page-3-5.html
comme si c'était
/page.php?id=3&nb=5

Voilà. Donc sur la page HTML le lien devra appeler l'URL "page-3-5.html", le serveur l'interpretera avec la règle qui correspond.

Ai-je été clair ?
 
WRInaute discret
oui oui mais nan lol pour la règle pas de souci j'ai pigé comme un pigeon !
tu dis que "Donc sur la page HTML le lien devra appeler l'URL "page-3-5.html", le serveur l'interpretera avec la règle qui correspond. "
donc normalement quand je clique sur un lien dans mon navigateur je doit avoir "page-3-5.html", la c'est ok mais mon index.php doit reste index.php ? et les autres que j'appelle via un lien se "transforme" en "page-3-5.html", ce qui n'est pas le cas, mais je vais revoir les règles se soir !
Je te remercie beaucoup
Aligato
Thank's
danke schöne !
Saol !
 
WRInaute accro
Non, le lien ne se transforme pas tout seul.

Si tu cliques sur un lien <a href="/page.php?id=3&nb=5"> ben il va pas se changer tout seul en lien réécrit.

Tu dois le réécrire dans le code source de la page.
 
WRInaute discret
Comment le réécrire dans la page?
faut faire comme ceci ?:

<a href=\"fiche_commune-([0-9]+)-(-[a-z]*).html\">
 
WRInaute discret
...je vois mais j'ai des variables $num_dep etc.... je ne peux les remplacer par des "données" .

Code:
echo "<td><a href=\"fiche_commune.php?num_dep=$num_dep&nom_dep=$nom_dep\">(".$dep['numdep'].") ".$nom_dep."</a></td>";
 
WRInaute discret
c'est dommage que dans le tuto ce n'est pas aussi bien expliqué que ton expliquation lol.
mais en faisant ce que t'a fait avec

Code:
<?php

echo "<a href=\"fiche_commune-".$num_dep."-".$num_cequetuveux.".html\">

?>

est ce que cela ne posepas de problème pour la récupération des variables en $_GET?

en effet j'obtient la réécriture des url mais j'ai l'erreur 404 qui dit que la page est introuvable , pourquoi ?
cela n'a rien à voir avec l'envoie des variables ,si?
faut-il que je renomme les pages.php en pages.html ??
autre question lol quand j'arrive sur index sur le navigateur j'ai index.php mais quand je change l'extension en .html cela fonctionne mais que dois-je faire pour que j'ai directement index.html ? sur .htaccess la réécriture est deja faite

je te remercie deja pour ton aide !!
 
WRInaute accro
Pas de souci pour la récupération en GET. La réécriture va indiquer au serveur d'interpréter l'url réécrite comme une url en .....php?parametres= ...

Après si tu as une erreur 404, c'est que ta règle de réécriture n'est pas bien écrite.

Tu n'as pas besoni de renommer tes pages en .html (faut d'ailleurs surtout pas le faire)

Euh au fait, j'espère que t'as pas mis
$num_cequetuveux
dans ton code, c'est un nom de variable comme cà, au pif ...
 
WRInaute discret
nickargall a dit:
Euh au fait, j'espère que t'as pas mis
$num_cequetuveux
dans ton code, c'est un nom de variable comme cà, au pif ...

lOol nan nan t'inquiète pas,
je vais revoir la réécriture !

quand j'arrive sur index sur le navigateur j'ai index.php mais quand je change l'extension en .html cela fonctionne mais que dois-je faire pour que j'ai directement index.html ? sur .htaccess la réécriture est deja faite

Merci beaucoup
 
WRInaute discret
j'avais oublié que c'était sensible à la casse !
donc j'ai mis des (.*) partout lol, est-ce la bonne solution ?
ou je laisse (-[a-z]*) et que pour les variables je les mets en minuscule avant de l'envoyer ?
ouf das ist gut ! c'est génial ! lol en tout cas je te remercie bcp bcp
 
WRInaute accro
akara a dit:
j'avais oublié que c'était sensible à la casse !
donc j'ai mis des (.*) partout lol, est-ce la bonne solution ?
ou je laisse (-[a-z]*) et que pour les variables je les mets en minuscule avant de l'envoyer ?
ouf das ist gut ! c'est génial ! lol en tout cas je te remercie bcp bcp

des (.*) signifient 'toute occurence de n'importe quel type (caractere aplpha, numerique, ...)
A toi de voir comment tu veux gérer tes URL, avec des maj ou pas. Moi perso je passe tout en minuscules comme ça je suis tranquille.

De rien :) Si tu veux me remercier, et que t'as un site de foot, mets donc un lien vers le mien en "font-size=72" en plein milieu de ta page d'accueil ;)

non je plaisante bien sur
 
WRInaute discret
lOol t'as de la chance que j'aime le foot allez le Racing Club de Strasbourg !!
quand j'aurais mon site perso je penserai à toi, un pti lien en 8px en blanc sur un fond blanc mdrr
(jplaisante).
 
WRInaute discret
une ptite dernière question (j'espère) lOol, comment gère tu les accents sur l'url ?
est ce qu'on peut garder les accents dans l'url ?

Code:
$resultat=strtr($chaine,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
est ce que cela est pratique ou il y a une meilleure solution ?
 
WRInaute discret
REmerci !
j'avais un autre problème, c'était lors de l'envoi des variables en $_Get, je n'arrivais pas à récupérer les valeurs mais j'ai vu sur un forum qu'il fallait procéder comme ceci :
Code:
RewriteRule ^fiche_commune-num_dep-(.*)-nom_dep-(.*)\.html$ fiche_commune.php?num_dep=$1&nom_dep=$2 [L]
donc sur la page :
Code:
echo "<td><a href=\"fiche_commune-num_dep-".$num_dep."-nom_dep-".$nomdep.".html\">(".$dep['numdep'].") ".$nom_dep."</a></td>";
sinon voila !
 
WRInaute accro
non mais c'est vrai que sur les tuto pour le rewriting, ils auraient dû rajouter la mention "le rewriting n'est pas affilié à la magie et ne modifie pas des liens écrits dans un code source" ;)
 
WRInaute discret
e-kiwi a dit:
non mais c'est vrai que sur les tuto pour le rewriting, ils auraient dû rajouter la mention "le rewriting n'est pas affilié à la magie et ne modifie pas des liens écrits dans un code source" ;)

lol biensur et abracadabra pour $_GET

et le tuto serait nickel
 
Discussions similaires
Haut