url simpl, mais je n'y arrive pas !

WRInaute discret
Bonjour à tous, cela fait maintenant 15 jours que je cherche une solution, que je modifie mon htaccess, que j'utilise des tutos, ( celui de WRI entre autres )
que je fouine dans le forum .. cela ne fonctionne toujours pas.
je sais que mon hébergeur accepte l'url rewriting, j'en ai eu la confirmation.

j'ai une page index.php et 1 variable page.
donc mes liens sont sous la forme

index.php?page=desc
index.php?page=outi
index.php?page=salon
index.php?page=offre


voilà mon htaccess.

Code:
DirectoryIndex index.php
Options -Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteRule (.*)\.htm$ index.php?page=$1 [QSA,L]
RewriteCond %{HTTP_HOST} !^mondomaine.com$ 
RewriteRule ^(.*)   http://www.mondomaine.com/$1  [QSA,L,R=301]

deplus la redirection pour éviter l'acces à mon site sans le www ne fonctionne pas, sachant que j'ai des sous domaines utilisés.

Voilà je sais que ce forum a de multiples pages concernant ce sujet. je les ai parcourus et encore parcourus. bcp d'url rewrinting sont pour plusieurs variables.
je n'en ai qu'une, mais je n'y arrive pas, je ne capte pas la procédure.
je comprend pourtant les
RewriteRule page_réécrite page_a réécrire

si quelques uns d'entre vous bien avertis pourrait m'aider, cela me soulagerai :)

Merci à tous
@+

Padaben
 
WRInaute occasionnel
Et avec ça ?
Code:
RewriteCond %{HTTP_HOST} ^mondomaine\.com$
RewriteRule ^(.*) http://www.mondomaine.com/$1  [QSA,L,R=301]
 
WRInaute discret
GENIAL :)

magic corp. a dit:
Et avec ça ?
Code:
RewriteCond %{HTTP_HOST} ^mondomaine\.com$
RewriteRule ^(.*) http://www.mondomaine.com/$1  [QSA,L,R=301]

Merci bcp margic_corp.. mais pourquoi le \ a t il une aussi grande importance?

je continue à chercher pour ma réécriture d'url avec ma var page. mais toujours sans succés...

je présumé que avec easyphp 1.8, cela devrait fonctinner en local.
si la fonctione mod_rewrite est sur on .

Merci en tout cas de ton aide.

@+

Padaben
 
WRInaute occasionnel
Re: GENIAL :)

PadaBen a dit:
Merci bcp margic_corp.. mais pourquoi le \ a t il une aussi grande importance?
le "." aillant une signification dans l'expréssion régulière, il faudrait normalement mettre le "" pour le déspécialiser ... mais le mod_rewrite est capable de sans passé lorsque'il n'y a pas d'embiguité (c'est le cas ici) mais je trouve que c'est une bonne habitude à prendre.

PadaBen a dit:
je continue à chercher pour ma réécriture d'url avec ma var page. mais toujours sans succés...
Ca veux dire que pour le www c'est OK ?
Peux tu me donner un exemple d'URL avec et sans rewrite ... et le type d'erreur que tu as (500, 404, autre)

PadaBen a dit:
je présumé que avec easyphp 1.8, cela devrait fonctinner en local.
si la fonctione mod_rewrite est sur on .
1.8 ??? je croyais qu'il avait arrété à la 1.7.
Pour le mod_rewrite, ça dépand de la version de apache.
 
WRInaute discret
Re: GENIAL :)

magic corp. a dit:
le "." aillant une signification dans l'expréssion régulière, il faudrait normalement mettre le "" pour le déspécialiser ... mais le mod_rewrite est capable de sans passé lorsque'il n'y a pas d'embiguité (c'est le cas ici) mais je trouve que c'est une bonne habitude à prendre.
ui j'ai bien cerné, c'est pour échapper le caractère. je trouve aussi que tant qu'à faire autant bien coder !!

magic corp. a dit:
Ca veux dire que pour le www c'est OK ?
Peux tu me donner un exemple d'URL avec et sans rewrite ... et le type d'erreur que tu as (500, 404, autre)
ui cela fonctionne, mais ce qui est bizarre, c'est que sur un autre serveur sur le meme hébergeur, pour un autre site, cela ne fonctionne pas... des pistes?

oui quand je teste le rewriting j'obtiens une erreur 404, donc je suppose que c'est parceque le rewrite ne s'effectue pas .
mes liens d'origine ont la forme
index.php?page=desc, index.php?page=outi...
je les ai tous refaits :
desc.html , outi.html...

magic corp. a dit:
1.8 ??? je croyais qu'il avait arrété à la 1.7.
Pour le mod_rewrite, ça dépand de la version de apache.
voilà le lien pour easyPHP1.8, mais je suppose que vu que tu ne savais pas tu t'es empressé d'aller le chercher ;)
maos o cas où !! :
http://www.easyphp.org/telechargements.php3

voilà encor merci

Padaben

[EDIT] j'ai été un peu long, mon précédent post écrit n'a pas franchi la barre de la cession.. résultat, message effacé...
 
WRInaute discret
Salut all !

bon j'avance, j'ai repris tout le tuto de a à z. c'est déjà plus clair pour moi ,mais pour le moment j'obtiens encore une erreur 404

Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-z]-[a-z])\.html$ index.php?page=$1 [L]
avec ce htacces pour des pages du type index.php?page=doc ca semblerai etre ca.

1 1ere question :
est on obligé de préciser la variable page dans la règle de réécriture comme ceci :


Code:
RewriteRule ^page-([a-z]-[a-z])\.html$ index.php?page=$1 [L]

j'aimerai m'en passer.

il y a encore des trous dans ma compréhension !!! :s
en fait dans ma page index.php ,j'utilise le GET et l'include

Code:
if (!isset($_GET["page"])){
							include ('contenu.php');
							}					
							else { 
							if	($_GET["page"]=="lacaf"){
							include ('la-cafetiere.php');
							}
							else if ($_GET["page"]=="legrill"){
							include ('le-grillepain.php');
							}
							else if	($_GET["page"]=="contact"){
							include ('nous-contacter.php');
							}
							}

dans mon menu, j'ai bien mes liens <a href="la-cafetiere.php">la cafetiere</a>
etc...
mais je ne parviens pas .

si toutefois quelques oeils avertis passaient par là merci de votre aide.

@+

Padaben[/code]
 
WRInaute occasionnel
Re: Salut all !

PadaBen a dit:
bon j'avance, j'ai repris tout le tuto de a à z. c'est déjà plus clair pour moi ,mais pour le moment j'obtiens encore une erreur 404

Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-z]-[a-z])\.html$ index.php?page=$1 [L]
avec ce htacces pour des pages du type index.php?page=doc ca semblerai etre ca.
J'aurrais plutôt vu ça comme ça :
Code:
RewriteRule ^([-a-z]+)\.html$ /index.php?page=$1 [L]
PadaBen a dit:
1 1ere question :
est on obligé de préciser la variable page dans la règle de réécriture comme ceci :


Code:
RewriteRule ^page-([a-z]-[a-z])\.html$ index.php?page=$1 [L]

j'aimerai m'en passer.
Deux possibilité :
1 - Les ".html" ne correspondent qu'à des pages "index.php?page=..." qui sont rewriter et ça peu passer :?
2 - Dans index.php tu gères même les page qui n'ont rien à voir (genre : index.html donne -> index.php?page=index et tu redirige vers la bonne page, même si il n'est pas sensé être géré par index.php)
PadaBen a dit:
il y a encore des trous dans ma compréhension !!! :s
en fait dans ma page index.php ,j'utilise le GET et l'include

Code:
if (!isset($_GET["page"])){
							include ('contenu.php');
							}					
							else { 
							if	($_GET["page"]=="lacaf"){
							include ('la-cafetiere.php');
							}
							else if ($_GET["page"]=="legrill"){
							include ('le-grillepain.php');
							}
							else if	($_GET["page"]=="contact"){
							include ('nous-contacter.php');
							}
							}

dans mon menu, j'ai bien mes liens <a href="la-cafetiere.php">la cafetiere</a>
etc...
mais je ne parviens pas .
Dans ton menu, tu dois avoir des liens de cette forme <a href="la-cafetiere.html"> ou plutôt, à la vue de ton code, <a href="lacaf.html">
 
WRInaute discret
Re: Salut all !

Tou d'abord désolé de ne pas etre passé plus tot !!

alors je reprend pr les 2 du fond !! lol

[quote="magic corp]Dans ton menu, tu dois avoir des liens de cette forme <a href="la-cafetiere.html"> ou plutôt, à la vue de ton code, <a href="lacaf.html">[/quote]

oui exactement Margic_corp, j'ai écrit mes url sous cette forme, mais mon site ( en local ) ne m'affiche pas les pages correspondantes décrites par la regle :


Code:
RewriteRule ^html/([a-z]+)\.html$ /html/index.php?page=$1 [L]
parceque en fait l'écriture que je veux mettre en place concerne uniquement les fichiers du dossier monsite/html/
d'ou le "html" en début de chaque partie de la ligne.

je m'y suis remis il y a peu.. je suis toujours dedans !:s

je vous tiens au courant, mais si vous avez d'autres conseils;)

Merci pour vos lumières

@+

Padaben
 
WRInaute discret
Suite ...

Alors j'ai utlisé la regle précédente dans un fichier htaccess à la racine du répertoire html
et ca marche .

Code:
RewriteEngine on
RewriteRule ^([a-z]+)\.html$ index.php?page=$1 [L]
Alors ma question est quel erreur peut il y a voir dans le chemin de ma regle d'origine :
Code:
RewriteRule ^html/([a-z]+)\.html$ /html/index.php?page=$1 [R,L]
pour que la réécriture ne s'effectue pas ?


m'enfin, c déjà une bonne nouvelle, je dois etre sur la bonne piste.

je vous tiens au courant ;)

@+ padaben
 
WRInaute discret
et encore suite ... je fais part de mes découvertes !

Alors soyons fou, puisque le chemin de la regle pose probleme j'ai pris parti pour opter pr une solution de repli.

j'ai donc à la racine de mon site; mon htaccess pour erreur 404 perso, pour l'obligation www.mondomaine.com
etc...

du coup j'ai mis dans mon dossier spécifié html le htacces suivant :

Code:
RewriteOptions inherit
RewriteEngine on
RewriteRule ^([a-z]+)\.html$ index.php?page=$1 [L]

du coup ma réécriture à 1 varable fonctionne et les autres options aussi.

cependant, vu que je spécifie mon fichier par ([a-z]+)\.html
par ex pour une variablepage=macaf
j'ai le lien macaf.html qui fonctionne.
mais si ds mon url je tape macafgpz.html, la regle s'effetue aussi, mais vu que aucune varaible ne se nome macafgpz, j'ai une page vide ( ou plutot sans contenu)
y a t il un moyen de dire que les variables existantes ne sont que macaf, biere et platine. pour éviter que des gens tapent mal une url directe.
qui donc devrait etre une 404 !

Merci pour vos lumière @+

Padaben
 
WRInaute occasionnel
Sois :
Code:
RewriteOptions inherit
RewriteEngine on
RewriteRule ^macaf\.html$ index.php?page=macaf [L]
RewriteRule ^biere\.html$ index.php?page=biere [L]
RewriteRule ^platine\.html$ index.php?page=platine[L]
Ou alors :
dans index.php du test la variable "page" au tout début du fichier est si "page" n'est pas dans la liste que tu as définie tu redirectionnes vers une page d'erreur.
 
WRInaute discret
Merci margic_corp :)

oui c kler , c con je n'y avais pas pensé plus tot !:s
effectivement cela fonctionne.

toute mon écriture fonctionne, mais je présume qu'avec cette solution si j'ai 40 pages à réécrie, je dois les réécrire 1 par 1 , si elles portent des noms tres différents, comme c le cas ici.

m'enfin, le principal c que google indexe enfin ces 3 page, je rajoute aussi un fichier sitemap.xml, j'ai pas lu de tutos là dessus, mais pour avoir vu un exemple, c'est donc juste une suite des url de chaque page indexable. séparées par un espace... si je ne m'abuse.
faut il laisser l'entete de ce fichier
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
j'abuse oui jeussé ! j'aime vraiment bcp de forum! c tres pro .
j'aimerai aussi commander le bouquin " Google truc de pro" mais il est en rupture de stock partout !je suppose qu'il faut attendre sa réédition !!

merci encore Magic_Corp ;)

@+ all

Padaben
 
WRInaute occasionnel
Il me semble que Google Sitemap est un peu plus complex qu'une simple suite d'URL séparé par un espace ... dû moins de se que je m'en souvient, ils sont peut-être plus permissif aujourd'hui.
 
WRInaute discret
site et fin

magic corp. a dit:
Il me semble que Google Sitemap est un peu plus complex qu'une simple suite d'URL séparé par un espace ... dû moins de se que je m'en souvient, ils sont peut-être plus permissif aujourd'hui.

je suis tombé sur un sitemap de site un peu complexe à la fin d'un post dans ce forum ( je c plus ou c'est ) ou le mec donnait le lien de son sitemap.xml pour que d'autres le voie...

j'ai donné ce sitemap à google, je verrai bien apres analyse ce qu'il me dit .

Merci encore pour ton aide.

@+ pr d'autres aventures!!

Padaben

[edit]j'ai cherché la commande [Réglé] ou [resolu] mais je n'ai pas trouvé !
 

➡️ 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