page index.html en erreur

  • Auteur de la discussion Auteur de la discussion mark_h
  • Date de début Date de début
Nouveau WRInaute
bonjour,
je débute avec url rewriting et j'aurais besoin d'une petite aide :)
voici mon pb:
la configuration de mon site est la suivante:
j'ai une page index.php (à la racine) avec un répertoire includes/ ou je met mes pages à inclures :D
à la racine du site j'ai aussi une page index.html qui est ma page d'accueil.
dans mon fichier .htaccess j'ai mis :

Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-zA-Z_-]*)\.html$ /index.php?pag=$1 [L]

mon problème c'est que lorsque je tape http://www.monsite.com ça marche pas -> par ex:
Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
merci par avance si quelqu'un pouvais me venir en aide 8O
 
Nouveau WRInaute
Bonsoir,
je reviens pour demander de l'aide car ça fait un moment que je galère et y doit avoir des choses que j'ai pas bien compris dans la réécriture :cry:
je vous remet le contenu de mon fichier htacess:
Code:
RewriteEngine On

# si je met pas cet ligne impossible d'avoir la page d'index ??? normal ???
RewriteRule index\.html$ index.html [L]

# régle qui fonctionne !!!
RewriteRule ^([A-Za-z_-]+)\.html$  /realestate.php?pag=$1 [L]


# ici je ssouhaite ajouter des mots clés
RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)\.html$ /realestate.php?pag=$1 [L]


RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$2 [L]

RewriteRule ^([A-Za-z_-]+)-([0-9]+)\.html$ /realestate.php?pag=contact-us&confirm=$2 [L]

je pense qu'il y a de grosses erreurs :oops: pouvez vous m'aider à avancer merci
 
Nouveau WRInaute
aprés X test j'ai regroupé les règles qui marche, reste la dernière qui pause pb 8O

Code:
RewriteEngine On

# si je met pas cet ligne impossible d'avoir la page d'index ??? normal ???
RewriteRule index\.html$ index.html [L]

# régles qui fonctionne !!!
RewriteRule ^([A-Za-z_-]+)\.html$  /realestate.php?pag=$1 [L]
RewriteRule ^([A-Za-z_-]+)-([0-9]+)\.html$ /realestate.php?pag=contact-us&confirm=$2 [L]


# je souhaite ajouter des mots clés entre le nom de la page et id_select
#règle qui me conduit sur la page contact-us quant je test ????
RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L]
 
WRInaute impliqué
Ca aiderait si tu disait quel est le problème que tu as avec la dernière règle...

Ta première règle empêche les règles suivantes de s'appliquer si tu as index.html, grâce au [L] qui est à la fin. C'est pour cela qu'elle est utile.
 
Nouveau WRInaute
bonjour,
c'est la dernière:
Code:
RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L]
quant ma page a un nom simple genre welcome c'est ok mais ça se gatte quant le nom de la page est du genre listing-realestate-sales par exemple :?
merci pour l'aide.
 
WRInaute impliqué
mark_h a dit:
bonjour,
c'est la dernière:
Code:
RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L]
quant ma page a un nom simple genre welcome c'est ok mais ça se gatte quant le nom de la page est du genre listing-realestate-sales par exemple :?
merci pour l'aide.

Ca se gate, c'est-à-dire?

Qu'est-ce qui se passe?
 
Nouveau WRInaute
en fait il y a 2 cas:

(ci dessous marche mais il ne faut pas que je mette plus qu'un mot clé sinon je repars en page par défaut (accueil)
RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L]

(ci dessous je perd ma variable id_fiche (dans ce cas je vais en page défault que j'ai définie ou id_fiche=1))
et si jamais je met 2 mots clé je repars en page par défaut (accueil)
RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_fiche=$3 [L]

Code:
RewriteRule index\.html$ index.html [L]
RewriteRule ^([A-Za-z_-]+)\.html$ realestate.php?pag=$1 [L]
RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L] 
RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_fiche=$3 [L]
 
WRInaute impliqué
IL y a un problème avec ta règle :
Code:
RewriteRule ^([A-Za-z_-]+)\.html$  /realestate.php?pag=$1 [L]

Car cette règle attrape les URL qui contiennet des tirets.

Vu que tu veux utiliser les tirets comme séparateurs de mots clés, il faudrait l'enlever de la condition :

Code:
RewriteRule ^([A-Za-z]+)\.html$  /realestate.php?pag=$1 [L]

[edit]Les deux autres règles ont exactement la même partie gauche, donc la dernière ne s'appliquera jamais.
 
Nouveau WRInaute
après modif de 2ème règle ça marche, :D maintenant la regle:

Code:
RewriteRule ^([A-Za-z_-]+)-([A-Za-z_-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L]

marche si j'ai un seule mot clé, mais si j'en met deux (séparé par un tiret) ça fonctionne pas.
il y a un point que j'ai pas bien compris je pense :oops:
$1 est bien égal ([A-Za-z_-]+) (le 1er à gauche) et $3 = ([0-9]*) et j'aurais $2 ça serais égal à ([A-Za-z_-]+) du milieu ?
:( :?:
 
WRInaute impliqué
La aussi tu autorise le tiret dans $1 et $2, donc c'est ambigu. Essaie en enlevant les tirets :

Code:
RewriteRule ^([A-Za-z]+)-([A-Za-z]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L]
 
Nouveau WRInaute
Bonsoir Vap,
après avoir supprimé les "-" de la règle et dans mes noms de fichier ' j'ai remplacé par "_") ça vas un peut mieux :D

Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule index\.html$ index.html [L]
RewriteRule ^([A-Za-z]+)\.html$ realestate.php?pag=$1 [L]
RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)\.html$ /realestate.php?pag=$1 [L]
RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L]
RewriteRule ^([A-Za-z]+)-([0-9]*)\.html$ /realestate.php?pag=$1&confirm=$2 [L]

mais, j'ai toujours le pb de cette règle:


Code:
RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_fiche=$3 [L]

je comprend pas bien comment faire pour quelle soit différente de:

Code:
RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L]

:?
 
WRInaute impliqué
mark_h a dit:
mais, j'ai toujours le pb de cette règle:


Code:
RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_fiche=$3 [L]

je comprend pas bien comment faire pour quelle soit différente de:

Code:
RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /realestate.php?pag=$1&id_select=$3 [L]

:?

Je ne sais pas non plus, car tu as mis les mêmes conditions. Il faut que tu choisisse une façon de distinguer tes URL selon qu'elles correspdonent a un cas ou a l'autre. Tant que tu utilise des U>RL qui ont exactement la même structure tu ne pourra pas les distinguer.

Tu peux peut etre distinguer les deux cas en PHP, et supprimer une des dexu règles. A toi de vori ce qui est le plus pratique.
 

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