[Résolu] test.php?page=az en test/az.html

Nouveau WRInaute
Bonjour,

Noob de chez Débutant en php et rewriting, j'ai parcouru le forum pour essayer d'y trouver une réponse à mon problème... mais je nai pas trouvé pour la simple raison que je n'arrive pas à l'identifier...

Alors voilà, les urls de mes pages donne çà :
www.untel.com/monsite/test.php?page=quelque-chose
(quelque-chose étant une variable)

et je voudrais obtenir çà :
www.untel.com/monsite/test/quelque-chose.html


Petite précision qui joue peut-être, sur ma page test.php j'ai le code suivant :

- un menu avec :
Code:
<p><a href="?page=quelque-chose">Quelque Chose</a></p>
<p><a href="?page=autre-chose">Autre Chose</a></p>

- une frame de contenu avec :
Code:
<?
$page = $_GET['page'];
if ($page=='quelque-chose') {
    include('qc.htm');
} elseif ($page=='autre-chose') {
    include('ac.htm');
} else {
    include('accueil.htm');
}
?>


Voilà mon .htaccess (mis dans le répertoire monsite) :
Code:
Options +FollowSymlinks
RewriteEngine On
RewriteRule  ^test/([-a-z]*)\.html$  /test.php?page=$1 [L]

Ca ne marche pas et je vois pas où ça coince... J'ai essayé différentes modifs du .htaccess (changements du code et déplacement à la racine du site), mais ça ne donne rien !!!

Quelqu'un peut-il m'aider ???


_______________
psyzorg


ps : pour voir en ligne -> http://www.marpa.ouvaton.org/monsite/test.php
 
WRInaute accro
Euh question bête, as tu modifié les liens que tu appelles ?
D'après ce que tu indiques, ça n'a pas l'air d'être le cas.

Si tu appelles
<a href="?page=quelque-chose">Quelque Chose</a>, ben il te dirigera forcément sur ?page=quelque-chose

Le rewriting ne modifie pas les liens dans le code source ...

Essaie d'abord
<a href="quelque-chose.html">Quelque Chose</a> avec la règle que tu indiques.
 
Nouveau WRInaute
j'ai essayé avec :
<a href="quelque-chose.html">Quelque Chose</a>
et
<a href="test/quelque-chose.html">Quelque Chose</a>

mais ça me renvoie sur une 404... :cry:
 
Nouveau WRInaute
alors ça marche mais ya deux petits problèmes...

• 1er problème

ça marche pour mon menu car j'y ai mis mes liens de cette forme :
<a href="test/quelque-chose.html">Quelque Chose</a>

seulement à chaque fois que l'on clique sur un lien il me rajoute dans la barre d'adresse test/

en gros, si je clique sur Quelque Chose, il m'affiche dans la barre d'adresse
test/quelque-chose.html.
si ensuite je clique sur Autre Chose, il m'affiche
test/test/autre-chose.html.
donc si je reclique sur Quelque Chose, il me met
test/test/test/quelque-chose.html
et ainsi de suite...

est-ce possible de modifier ça ???

______________________________

• 2ème problème

ça ne marche pas quand je clique sur mes liens qui sont dans ma frame de contenu. il part de la page sur laquelle je suis et y rajoute
?page=quelque-chose

je ne sais pas comment manipuler le GET pour qu'il m'inclut la modif et que ça fonctionne...

j'avais récup ce GET (car je m'y connais pas encore assez pour coder moi-même :oops:) pour que ce soit seulement cette zone qui soit rechargée et pas toute la page... donc ça ne me dérange pas d'utiliser autre chose q'un GET pour effectuer ça mais je vois pas quoi ?? :?: ??

______________________________

Voilà où ça en est pour mes codes :

• menu
Code:
<p><a href="test/quelque-chose.html">Quelque Chose</a></p>
<p><a href="test/autre-chose.html">Autre Chose</a></p>

• frame de contenu
Code:
<?
$page = $_GET['page'];
if ($page=='quelque-chose') {
    include('qc.htm');
} elseif ($page=='autre-chose') {
    include('ac.htm');
} else {
    include('accueil.htm');
}
?>

• htaccess
Code:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^test/(.*)\.html$   test.php?page=$1 [QSA,L]
 
WRInaute impliqué
Tes liens au lieu de les écrire comme ça :
Code:
<p><a href="test/quelque-chose.html">Quelque Chose</a></p>
<p><a href="test/autre-chose.html">Autre Chose</a></p>

fais ça :
Code:
<p><a href="/test/quelque-chose.html">Quelque Chose</a></p>
<p><a href="/test/autre-chose.html">Autre Chose</a></p>

La barre / indique un lien par rapport à la racine du site.

Dans ta Frame comment sont fait tes liens?
 
Nouveau WRInaute
bon... le deuxième problème est donc résolu !

:oops: :oops: :oops: j'avais oublié de changer les liens des pages appelées dans la frame de contenu !!! :oops: :oops: :oops:

le premier problème est en partie résolu... ça marche avec le / devant test...
je vais essayé comme ça et je reviendrais vers vous si ça ne marche pas à l'installation du site.
car dans l'immédiat je fais les test sur mon hébergement perso mais à terme le site va être hébergé chez un hébergeur mutualisé (qui accepte le rewrite) mais je ne suis pas sûr du chemin depuis la racine du site.

sinon je peux aussi le faire en lien absolu... mais c'est pas top si on est amené à changer d'hébergeur... il faudra recoder toutes les pages :?

est-ce que tu serais me dire pourquoi il rajoute un /test à chaque nouveau clic ???
 
WRInaute impliqué
parce que sans le /, c'est un chemin relatif, donc quand tu fais un lien vers test/quelque-chose.htm il va rajouter test/quelque-chose.htm à l'url en cours
 
Nouveau WRInaute
et si je mettais un autre séparateur que / entre test et le nom de ma page, ça devrait marcher ?!?
est-ce que le = est un bon caractère de séparation pour le référencement chez gogole ???

en tout cas...

UN GROS MERCI POUR VOTRE AIDE
 
Nouveau WRInaute
kool....

encore merci à toi...

tu saurais me dire pour le = chez gogole ou je pose la question sur un des fofos sur google ?
 
Nouveau WRInaute
j'utilise déjà le - pour la fin de mon url et je voulais en mettre un différent pour la première partie...
c'est le site d'une compagnie et je trouvais ça plus "propre" de mettre :
spectacle=nom-spectacles.html

en fait, au vu de ce que j'ai rapidement lu sur les fofos, je vais opter pour le +
il semble un bon séparateur et est cohérent dans ma syntaxe ;o)

merci pour vos conseils
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut