Rewrite, probleme du caractere '/'

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

eve
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 1 Nov 2004

Rewrite, probleme du caractere '/'

Message le Lun Nov 01, 2004 3:32

Bonjour,
voila je voulais obtenir au depart des url comme ceci :
http://www.mondomaine.com/categorie1/categorie2 (sans .html a la fin)
pour representer :
http://www.mondomaine.com/index.php?p=c ... categorie2
et en lisant sur ces forums j'ai lu qu'il etait impossible de ne pas mettre l'extension.

Enfin bref en faisant une regle comme ceci :
RewriteRule ^(.*?)-(.*?)\.html$ index.php?p=$1&option=$2 [L]
RewriteRule ^(.*?)\.html$ index.php?p=$1 [L]

Et que j'uilise l'url : http://www.mondomaine.com/categorie1-categorie2.html => Impeccable

Or si je change mes regles ( changement de '-' par '/' ) :
RewriteRule ^(.*?)/(.*?)\.html$ index.php?p=$1&option=$2 [L]
RewriteRule ^(.*?)\.html$ index.php?p=$1 [L]

Alors dans ce cas, les chemins des images ne sont plus bons, ainsi que le css etc..

Que se passe t-il?

Merci de vos reponses..

nikoshr
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 320
Inscription: 10 Juil 2003

Message le Lun Nov 01, 2004 9:40

Tu veux dire que la page est correctement affichée mais que les appels aux autres éléments ne fonctionnent pas? Ils ne seraient pas en liens relatifs par hasard? Genre <img src='image.jpg' /> ? Si c'est le cas, change les chemins image, css, etc pour de l'absolu, par exemple <img src='/image.jpg' />

Par ailleurs, il est tout à fait possible d'utiliser des urls sans extension. Dans ton cas, il suffirait de retirer le \.html dans les règles. Il faudrait cependant ajouter des conditions pour éviter de réécrire tous les appels, entre autres ceux des images et des feuilles de style.

eve
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 1 Nov 2004

Message le Lun Nov 01, 2004 11:12

Tu peux m'en dire plus au sujet de :
"Il faudrait cependant ajouter des conditions pour éviter de réécrire tous les appels, entre autres ceux des images et des feuilles de style"

Car des que je retire le '\.html' de mon htaccess, et que par exemple j'essaie l'url :
http://www.mondomaine.com/categorie1

Il me la change dans ma barre d'adresse par :
http://www.mondomaine.com/categorie1/?p=categorie1


maxttb
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 477
Inscription: 27 Fév 2004

Message le Lun Nov 01, 2004 12:16

Pourrais-tu nous envoyer l'adresse de ton site?
Ce serait beaucoup plus pratique pour te répondre...

nikoshr
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 320
Inscription: 10 Juil 2003

Message le Lun Nov 01, 2004 12:24

A priori, tu es victime du mode de fonctionnement des .htaccess. Voir http://www.webrankinfo.com/forums/viewtopic_15487.htm pour un peu plus de détails.

Pour éviter la réécriture des fichiers css, images et du index.php quand il a été traité, il faut une règle supplémentaire pour empêcher le rewriting, par exemple
Code: Tout sélectionner
RewriteRule \. - [L]
RewriteRule ^([^/]*?)/(.*?)$ index.php?p=$1&option=$2 [L]
RewriteRule ^([^/]*?)$ index.php?p=$1 [L]

Ici, la première règle stoppe tout quand il existe un . dans l'url.

eve
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 1 Nov 2004

Message le Lun Nov 01, 2004 15:04

Alors la merci, mettre 'RewriteRule \. - [L]' corrige pas mal mes problemes.
ce qui donne dans mon htaccess :
RewriteRule \. - [L]
RewriteRule ^([^/]*?)/(.*?)$ index.php?p=$1&option=$2 [L]
RewriteRule ^([^/]*?)$ index.php?p=$1 [L]

J'ai juste encore un petit truc.

L'url de mon site est http://www.nuxy.net

Tester les 3 differents liens a gauche:
Nuxy
Edito
Forums

Quand on click sur 'Nuxy' (http://www.nuxy.net/root) ca le fait bien, alors que les autres, il rajoute encore /?p=categorie

Mon fichier index.php traite les urls de la forme :

if (!$_GET['p'])
{ include "edito/index.php"; }
else if ($_GET['p'] == "root")
{ include "root.php"; }
else {
if (file_exists( $_GET['p']."/index.php" )) include ($_GET['p']."/index.php");
else include "lib/error.php";
}

nikoshr
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 320
Inscription: 10 Juil 2003

Message le Lun Nov 01, 2004 16:19

Il semblerait qu'il y ait une interaction malheureuse avec la directive DirectoryIndex du fait de l'existence des répertoires edito et forum.
Trois solutions simples : soit changer les noms de répertoire, soit remonter les index.php et les transformer en edito.php et forum.php, soit placer les includes dans une arborescence indépendante.

eve
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 1 Nov 2004

Message le Lun Nov 01, 2004 16:55

Ah ok, bon je pense que je vais prendre la solution de remonter les index.php et les renommer en edito.php, forum.php car changer le nom des repertoires je viens d'essayer et soit j'ai mal compris ce que tu as dit, soit ca marche pas.

J'ai renommé 2 repertoires :
forum en 'pforum'
edito en 'pedito'

et changer dans mon /index.php :
if (file_exists( $_GET['p']."/index.php" )) include ($_GET['p']."/index.php"); en
if (file_exists( "p".$_GET['p']."/index.php" )) include ("p".$_GET['p']."/index.php");

Ca fait toujours pareil..

nikoshr
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 320
Inscription: 10 Juil 2003

Message le Lun Nov 01, 2004 17:02

C'est bien ca. Etrange, ca fonctionne chez moi. A tout hasard, un problème de cache?

eve
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 1 Nov 2004

Message le Lun Nov 01, 2004 17:10

Ba ca a pas l'air, viens de le vider et toujours pareil...

Bon c'est peut etre une option qui differe dans le httpd.conf ?

eve
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 1 Nov 2004

Message le Lun Nov 01, 2004 17:12

Autant pour moi ca marche la...

En tout cas, terrible, je te remercie beaucoup pour ton aide....


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités