Web Developpement

Forum de discussions pour les webmasters et les web developpeurs. (PHP, SQL, XHTML, JavaScript, Référencement, Positionnement,...)

Vous n'êtes pas identifié.

#1 11-04-2008 14:46:14

c00lman
Modérateur
Date d'inscription: 05-03-2008
Messages: 42
Site web

Soucis d'url rewriting.

Bonjour,

Je sèche sur un soucis d'url rewriting ...
Précision: hébergement 1&1 pack perso initiale.

Pour commencer, j'utilise une fonction pour ré écrire les url qui se nome OptimiseUrl(). Tous caractères accentués est remplacé par son équivalent é->e, ç->c etc ... Les espaces sont remplacés par des tirets (-).

Forme du lien non rewrité:

Code:

<a href="page-site.php?titre='.OptimiseUrl($titre_page).'&page='.$id_de_la_page.'">'.$titre_page.'</a>

Forme du lien pour être rewrité:

Code:

<a title="'.$titre_page.'" href="'.OptimiseUrl($titre_page).'-'.$id_de_la_page.'.php">'.$titre_page.'</a>

Ce dernier me donne donc une url du style .../creer-un-site-gratuit-12.php
J'utilise la règle de rewriting suivante:

Code:

RewriteRule  ^(.*)-([0-9]*)\.php$  /page-site.php?titre=$1&page=$2 [L]
ou
RewriteRule  ^(.*)-([0-9]*)\.php$  /page-site.php?page=$2 [L]
(exactement le même effet)

Celle ci semble fonctionner sauf que j'ai accès à ma page à partir de plusieurs url ...
Si je reprend cette exemple .../creer-un-site-gratuit-12.php, j'y ai quand même accès en supprimant successivement chaque lettre une par une jusqu'à .../-12.php yikes !
Pourquoi ?

Pour mes catégories:
J'utilise un fonction nommé sansaccent() qui me remplace les caractères bizarres du aux accents et autres par leurs équivalents.
Forme du lien non rewrité:

Code:

<a title="'.sansaccent($nom_de_la_categorie).'" href="categorie.php?monid='.$id_de_la_categorie.'">Suite...</a>

Forme du lien pour être rewrité:

Code:

<a title="'.sansaccent($nom_de_la_categorie).'" href="'.OptimiseUrl($nom_de_la_categorie).'-'.$id_de_la_categorie.'.php">suite...</a>

La, je ne parviens pas à trouver la bonne règle d'écriture.

Note:Normalement uniquement les id sont transmises par url.

C'est grave docteur big_smile ?

Merci

Hors ligne

 

Liens utiles

#2 11-04-2008 15:04:20

Crocxx
Webmaster
Lieu: France -> Tours (37)
Date d'inscription: 05-02-2008
Messages: 229
Site web

Re: Soucis d'url rewriting.

Bonjour,
La règle de réécriture est tous à fait bonne.

Ce que tu peu faire c'est une redirection dans tes pages vers la bonne url pour les url n'ayant pas le bon titre.

Par exemple:

Code:

if(OptimiseUrl($titre_page)!=$_GET['titre']) header('location:'.OptimiseUrl($titre_page).'-'.$id_de_la_page.'.php')

Hors ligne

 

#3 12-04-2008 14:33:58

c00lman
Modérateur
Date d'inscription: 05-03-2008
Messages: 42
Site web

Re: Soucis d'url rewriting.

Merci Crocxx smile .

Si j'ai bien comprit ton code, il vérifie que le titre optimisé correspond au titre transmit et si ce n'est pas le cas, il redirige.
Il manque pas des {..} dans ton code ?
J'ai fait comme suit pour obtenir un résultat:

Code:

$pageid=$_GET["page"]; //id de la page
$titredelapage=$_GET["titre"]; //titre de la page

$contenue = html_entity_decode($page['contenue_de_la_page']);
$titre = html_entity_decode($page['titre_de_la_page']);
$description = html_entity_decode($page['description_de_la_page']);
$motclef = html_entity_decode($page['motcle_de_la_page']);

if(OptimiseUrl($titre) != $_GET['titre']){
header('location:'.OptimiseUrl($titre).'-'.$pageid.'.php');
}

Ci je supprime une ou toutes les lettres que comporte mon titre dans mon url, je suis bien redirigé vers la bonne url. Par contre si je supprime l'id dans l'url, je tombe sur une page blanche sans aucune erreur dessus ?

Tu ne m'as pas répondu pour le rewrite de mes catégories ...tongue

Hors ligne

 

#4 12-04-2008 16:37:40

Crocxx
Webmaster
Lieu: France -> Tours (37)
Date d'inscription: 05-02-2008
Messages: 229
Site web

Re: Soucis d'url rewriting.

Il manque pas des {..} dans ton code ?

Pour les { } c'est normal c'est pour un souci d'optimisation quand il y a qu'un seul instruction derrière une condition les {} sont facultatif.

Par contre si je supprime l'id dans l'url, je tombe sur une page blanche sans aucune erreur dessus ?

Alors la aucune idée logiquement tu devrai avoir une erreur 404.
Tu devrait peu étre tester l'entete de la page sans id (personnellement j'utilise: cet outil)

La, je ne parviens pas à trouver la bonne règle d'écriture.

Pour tes catégories les deux règles peuvent rentré en conflit, tu devrai donc utiliser un truc comme ça par exemple:

Code:

RewriteRule  ^categ-(.*)-([0-9]*)\.php$  /categorie.php?monid=$2 [L]

Code:

<a title="'.sansaccent($nom_de_la_categorie).'" href="categ-'.OptimiseUrl($nom_de_la_categorie).'-'.$id_de_la_categorie.'.php">suite...</a>

Hors ligne

 

#5 24-04-2008 16:06:38

c00lman
Modérateur
Date d'inscription: 05-03-2008
Messages: 42
Site web

Re: Soucis d'url rewriting.

Je reviens avec un soucis de rewriting lié à ovh.
Le code ci dessous fonctionne parfaitement sous 1&1 mais sous ovh seul le Rewrite des catégories ne veut pas fonctionner:

Code:

RewriteEngine on

#Rewrite des pages
RewriteRule  ^(.*)-([0-9]*)\.php$  /cms/page-site.php?titre=$1&page=$2 [L]
 
#Rewrite des categories
RewriteRule  ^categorie-([0-9]*)-(.*)\.php$  /cms/categorie.php?monid=$1&categorie=$2 [L]

#On rewrite le flux rss
RewriteRule ^rss\.xml$  /cms/rss.php [L]

#On rewrite le plan sitemap xml
RewriteRule ^sitemap\.xml$  /cms/sitemap.php [L]

J'ai essayé en ajoutant un / au niveau de ^/categorie... puis sans les ^et $ .. rien ni fait !
Le résultat est le même, page blanche sans erreurs.
Une idée?
Merci

Hors ligne

 

#6 24-04-2008 16:13:58

Crocxx
Webmaster
Lieu: France -> Tours (37)
Date d'inscription: 05-02-2008
Messages: 229
Site web

Re: Soucis d'url rewriting.

Tu peu essayer:

Code:

Options -MultiViews
RewriteEngine on
RewriteBase /

#Rewrite des pages
RewriteRule  ^(.*)-([0-9]*)\.php$  /cms/page-site.php?titre=$1&page=$2 [L]
 
#Rewrite des categories
RewriteRule  ^categorie-([0-9]*)-(.*)\.php$  /cms/categorie.php?monid=$1&categorie=$2 [L]

#On rewrite le flux rss
RewriteRule ^rss\.xml$  /cms/rss.php [L]

#On rewrite le plan sitemap xml
RewriteRule ^sitemap\.xml$  /cms/sitemap.php [L]

Sans garanti de fonctionnement ^^

Hors ligne

 

Liens utiles

#7 24-04-2008 16:59:10

c00lman
Modérateur
Date d'inscription: 05-03-2008
Messages: 42
Site web

Re: Soucis d'url rewriting.

Bhin sa marche pas yikes .. je hais OVH big_smile .

Hors ligne

 

#8 24-04-2008 18:13:58

Neo6
Modérateur
Lieu: Arras (62)
Date d'inscription: 25-02-2008
Messages: 112
Site web

Re: Soucis d'url rewriting.

Ou se trouve le htaccess ?

Essais ceci :

Code:

RewriteEngine on

#Rewrite des pages
RewriteRule  ^/(.*)-([0-9]*)\.php$  /cms/page-site.php?titre=$1&page=$2 [L]
 
#Rewrite des categories
RewriteRule  ^/categorie-([0-9]*)-(.*)\.php$  /cms/categorie.php?monid=$1&categorie=$2 [L]

#On rewrite le flux rss
RewriteRule ^/rss\.xml$  /cms/rss.php [L]

#On rewrite le plan sitemap xml
RewriteRule ^/sitemap\.xml$  /cms/sitemap.php [L]

Dernière modification par Neo6 (24-04-2008 18:17:19)


-------------------------------
PHP or not
OhMyPix (soon)

Hors ligne

 

#9 24-04-2008 18:24:25

Crocxx
Webmaster
Lieu: France -> Tours (37)
Date d'inscription: 05-02-2008
Messages: 229
Site web

Re: Soucis d'url rewriting.

Apparemment sont fichier .htaccess est dans le dossier /cms/

Hors ligne

 

#10 24-04-2008 18:29:24

Neo6
Modérateur
Lieu: Arras (62)
Date d'inscription: 25-02-2008
Messages: 112
Site web

Re: Soucis d'url rewriting.

Il me semble avoir vu quelque part qu'il fallait qu'il soit placé à la racine de l'hébergement wink
Sinon l'erreur d'url rewriting est classique chez le mutualisé d'ovh, il faut ajouter le slash au début juste après ^.


-------------------------------
PHP or not
OhMyPix (soon)

Hors ligne

 

#11 24-04-2008 18:53:56

Crocxx
Webmaster
Lieu: France -> Tours (37)
Date d'inscription: 05-02-2008
Messages: 229
Site web

Re: Soucis d'url rewriting.

Essais ça sinon si le code de neo ne fonctionne pas:

Code:

RewriteEngine on

#Rewrite des pages
RewriteRule  ^/cms/(.*)-([0-9]*)\.php$  /cms/page-site.php?titre=$1&page=$2 [L]
 
#Rewrite des categories
RewriteRule  ^/cms/categorie-([0-9]*)-(.*)\.php$  /cms/categorie.php?monid=$1&categorie=$2 [L]

#On rewrite le flux rss
RewriteRule ^/cms/rss\.xml$  /cms/rss.php [L]

#On rewrite le plan sitemap xml
RewriteRule ^/cms/sitemap\.xml$  /cms/sitemap.php [L]

à placer à la racine du site par contre.

Hors ligne

 

#12 24-04-2008 19:07:29

ComandoCool
Membre
Date d'inscription: 22-02-2008
Messages: 21
Site web

Re: Soucis d'url rewriting.

Chez OVH "/" est la racine du serveur et non la racine de ton espace FTP.

Relatif :
RewriteRule  ^cms/categorie-([0-9]*)-(.*)\.php$  cms/categorie.php?monid=$1&categorie=$2 [L]

Absolu :
RewriteRule  ^cms/categorie-([0-9]*)-(.*)\.php$  /home/LOGIN_FTP/www/cms/categorie.php?monid=$1&categorie=$2 [L]

Lignes testées et fonctionnelles.
Ce qui m'étonne c'est que les autres fonctionnent ?

Dernière modification par ComandoCool (24-04-2008 19:08:19)

Hors ligne

 

#13 24-04-2008 19:09:36

c00lman
Modérateur
Date d'inscription: 05-03-2008
Messages: 42
Site web

Re: Soucis d'url rewriting.

Merci de vos tentatives mais toujours pas sad ... En reprenant ton code Neo6 soit à la racine du site soit dans mon dossier, j'ai du 404 partout. En supprimant les slash juste après (^) j'en revient au même (que le htaccess soit à la racine ou dans le dossier) .
C'est déprimant hmm ^^.

Hors ligne

 

#14 24-04-2008 19:14:50

Crocxx
Webmaster
Lieu: France -> Tours (37)
Date d'inscription: 05-02-2008
Messages: 229
Site web

Re: Soucis d'url rewriting.

Et les autres codes?

Hors ligne

 

#15 24-04-2008 19:39:48

c00lman
Modérateur
Date d'inscription: 05-03-2008
Messages: 42
Site web

Re: Soucis d'url rewriting.

Alors:
Crocxx: 404 partout
ComandoCool: sa marche mais ..... sa marche pas ^^. En faite sa tourne comme mon htaccess du départ..c'est à dire que tout fonctionne sauf le rewrite des catégories.
Les 2 testés à la racine du site.
Dernier code testé

Code:

RewriteEngine on

#Rewrite des pages
RewriteRule  ^cms/(.*)-([0-9]*)\.php$  cms/page-site.php?titre=$1&page=$2 [L]
 
#Rewrite des categories
RewriteRule  ^cms/categorie-([0-9]*)-(.*)\.php$  cms/categorie.php?monid=$1&categorie=$2 [L]

#On rewrite le flux rss
RewriteRule ^cms/rss\.xml$  cms/rss.php [L]

#On rewrite le plan sitemap xml
RewriteRule ^cms/sitemap\.xml$  cms/sitemap.php [L]

Catégorie non rewrité: http://reflink.fr/cms/categorie.php?mon … categorie1
Catégorie rewrité: http://reflink.fr/cms/categorie-12-categorie-1.php

Hors ligne

 

Pied de page des forums

Propulsé par PunBB & édité par Rudy Onfroy

Liens & partenaires