Aller au contenu

Sujets conseillés

Posté

bonjour!

suite à un problème d'URL rewriting sur un script Freeglobes, j'expose ici le problème en détail dans la mesure où je sais que traînent par ici quelques spécialistes d'OVH et du fichier .htaccess! ;)

voici donc l'exposé des faits:

je suis en train d'installer la dernière version de freeglobes sur un hébergement 0VH / 90PLAN, plus précisément sur un multidomaine.

L'URL-rewriting est activé, voici le fichier .htaccess actuel:

SetEnv REGISTER_GLOBALS 0

RewriteEngine on


RewriteRule /(.*)-f-([0-9]*)-([0-9]*).html$ /annuaire-bretagne/feed.php?feedid=$2&linkid=$3 [L]
RewriteRule /(.*)-s-([0-9]*).html$ /annuaire-bretagne/single.php?id=$2 [L]
RewriteRule /(.*)-t-([0-9]*).html$ /annuaire-bretagne/tag.php?name=$1&id=$2 [L]
RewriteRule /(.*)-c-([0-9]*).html$ /annuaire-bretagne/index.php?name=$1&dir=$2 [L]
RewriteRule /(.*)-k-([0-9]*).html$ /annuaire-bretagne/index.php?do=keywords&words=$1&id=$2 [L]
RewriteRule /(.*)-c-([0-9]*)-p-([0-9]*).html$ /annuaire-bretagne/index.php?name=$1&dir=$2&start=$3 [L]
RewriteRule /top-rank([0-9]{1,2}).html$ /annuaire-bretagne/index.php?do=top-rank&pr=$1 [L]
RewriteRule /(([a-z]|-)*).html$ /annuaire-bretagne/index.php?do=$1 [L]

Les droits sont en 777 sur le .htaccess.

Tous les liens sont OK sauf ceux menant vers les catégories. Un message de firefox s'affiche:

	Redirection de page incorrecte 

Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.

* La cause de ce problème peut être la désactivation ou le refus
des cookies.

D'autre part, j'ai effacé toutes les catégories, puis recommencé, mais il semblerait que les numéros des catégories ne se réinitialisent pas, càd que lors de la création d'une première catégorie (après avoir supprimé les 6 catégories précédentes) le numéro de cette catégorie porte le numéro 7 dans l'URL, est-ce normal?

voici l'url de l'annuaire: http://www.menhir-location/annuaire-bretagne/

merci pour votre aide précieuse!

N.B: tout fonctionne si je désactive le rewriting, mais je tiens vraiment à l'activer!

merci pour votre aide, c'est clairement le fichier .htaccess qui n'est pas bon, ou/et un pb lié au multidomaine?

Posté

Il faudrait commencer par mettre l'URL correcte !

L'URL de l'annuaire est http://www.menhir-location.fr/annuaire-bretagne/ (tu as oublié le .fr) ;)

Pour le numéro 7 de ta catégorie, c'est normal. Tu n'as pas remis à zéro l'auto-incrément....

Tu devrais préfixer les .html par \ (mettre \.html) et remplacer les * par + (vu qu'il t'en faut au moins un)

Et tu peux aussi supprimer le premier / dans tes règles.

Posté

bonjour Dan, et merci de vous pencher sur ce qui est pour moi un gros casse-tête depuis 3 jours! merci d'avoir modifié mon lien!

j'ai fait les modifs au niveau des / des \ des + et des * mais cela ne fonctionne pas (du tout!)

voici donc le .htaccess modifié:

SetEnv REGISTER_GLOBALS 0

RewriteEngine on


RewriteRule /(.+)-f-([0-9]+)-([0-9]+)\.html$ annuaire-bretagne/feed.php?feedid=$2&linkid=$3 [L]
RewriteRule /(.+)-s-([0-9]+)\.html$ annuaire-bretagne/single.php?id=$2 [L]
RewriteRule /(.+)-t-([0-9]+)\.html$ annuaire-bretagne/tag.php?name=$1&id=$2 [L]
RewriteRule /(.+)-c-([0-9]+)\.html$ annuaire-bretagne/index.php?name=$1&dir=$2 [L]
RewriteRule /(.+)-k-([0-9]+)\.html$ annuaire-bretagne/index.php?do=keywords&words=$1&id=$2 [L]
RewriteRule /(.+)-c-([0-9]+)-p-([0-9]+)\.html$ annuaire-bretagne/index.php?name=$1&dir=$2&start=$3 [L]
RewriteRule /top-rank([0-9]{1,2})\.html$ annuaire-bretagne/index.php?do=top-rank&pr=$1 [L]
RewriteRule /(([a-z]|-)+)`\.html$ annuaire-bretagne/index.php?do=$1 [L]

Posté (modifié)

Voici un extrait de ce que j'ai et qui marche chez OVH :

CODE
RewriteRule ^(.+)-s-([0-9]+).html$ single.php?id=$2 [L]

RewriteRule ^(.+)-c-([0-9]+).html$ index.php?name=$1&dir=$2 [L]

RewriteRule ^(.+)-c-([0-9]+)-p-([0-9]+).html$ index.php?name=$1&dir=$2&start=$3 [L]

RewriteRule ^(.+)-k-([0-9]+).html$ index.php?do=keywords&words=$1&id=$2 [L]

RewriteRule ^(.+)-k-([0-9]+)-p-([0-9]+).html$ index.php?do=keywords&words=$1&id=$2&start=$3 [L]

RewriteRule ^(([a-z]|-)+).html$ index.php?do=$1 [L]

J'avais aussi fait quelques modifs par rapport à l'original pour le rendre (un peu) plus propre.

Par contre j'ai un ^ en début de règle, mais je ne sais plus si c'est impératif.

Après, il faut vérifier que tu as tout le code, soit redownloader tout le package, soit suivre le fil par des tests successifs en partant de index.php.

J'ai pas mal modifié la structure de mon freeglobes et de mémoire, j'avais eu ces messages quand le code n'était pas au point.

Edit : j'ai retrouvé mon doc de référence sur le rewriting (http://www.webmaster-hub.com/publication/Mod-rewrite-ou-la-reecriture-des.html) et il me semble que le ^ est nécessaire.

Modifié par deskiller
Posté
Edit : j'ai retrouvé mon doc de référence sur le rewriting (http://www.webmaster-hub.com/publication/Mod-rewrite-ou-la-reecriture-des.html) et il me semble que le ^ est nécessaire.

Merci pour le "doc de référence". ;)

Il date un peu (mais est toujours d'actualité) et mériterait une suite...

Le ^ (caret) n'est pas indispensable, vu qu'il marque de début de ligne. Avec certaines configurations Apache, ce début d'expression peut être un /.

C'est pourquoi j'utilise toujours le ? après le / du début, comme ça il devient facultatif.

Dan

Posté

j'ai essayé, ça ne fonctionne toujours pas, je suis au bord de la crise de nerfs! j'ai aussi essayé avec les URLS complètes (voir ci-dessous), rien à faire.

L'utilisation du ^ ne fonctionne pas du tout (plus aucun lien ne fonctionne, alors qu'avec les / tout fonctionne SAUF les catégories)

Je rappelle qu'il s'agit d'un NDD de chez OVH, mais hébergé en multidomaine d'un autre NDD, lui aussi chez OVH.

voici mon fichier actuel:

SetEnv REGISTER_GLOBALS 0
Options +FollowSymlinks
RewriteEngine On

RewriteRule /(.+)-f-([0-9]+)-([0-9]+).html$ http://www.menhir-location.fr/annuaire-bretagne/feed.php?feedid=$2&linkid=$3 [L]
RewriteRule /(.+)-s-([0-9]+).html$ http://www.menhir-location.fr/annuaire-bretagne/single.php?id=$2 [L]
RewriteRule /(.+)-t-([0-9]+).html$ http://www.menhir-location.fr/annuaire-bretagne/tag.php?name=$1&id=$2 [L]
RewriteRule /(.+)-c-([0-9]+).html$ http://www.menhir-location.fr/annuaire-bretagne/index.php?name=$1&dir=$2 [L]
RewriteRule /(.+)-k-([0-9]+).html$ http://www.menhir-location.fr/annuaire-bretagne/index.php?do=keywords&words=$1&id=$2 [L]
RewriteRule /(.+)-c-([0-9]+)-p-([0-9]+).html$ http://www.menhir-location.fr/annuaire-bretagne/index.php?name=$1&dir=$2&start=$3 [L]
RewriteRule /top-rank([0-9]{1,2}).html$ http://www.menhir-location.fr/annuaire-bretagne/index.php?do=top-rank&pr=$1 [L]
RewriteRule /(([a-z]|-)+).html$ http://www.menhir-location.fr/annuaire-bretagne/index.php?do=$1 [L]

Posté

en effet, après des heures de recherche, une illumination: il faut mettre /repertoire/ (remplacer "repertoire" par le nom de votre répertoire dans lequel se trouve le script freeglobes) avant les URL, dans la colonne de droite ET celle de gauche; voilà ce que cela donne:

SetEnv REGISTER_GLOBALS 0
RewriteEngine On

RewriteRule /repertoire/(.*)-f-([0-9]*)-([0-9]*).html$ /repertoire/feed.php?feedid=$2&linkid=$3 [L]
RewriteRule /repertoire/(.*)-s-([0-9]*).html$ /repertoire/single.php?id=$2 [L]
RewriteRule /repertoire/(.*)-t-([0-9]*).html$ /repertoire/tag.php?name=$1&id=$2 [L]
RewriteRule /repertoire/(.*)-c-([0-9]*).html$ /repertoire/index.php?name=$1&dir=$2 [L]
RewriteRule /repertoire/(.*)-k-([0-9]*).html$ /repertoire/index.php?do=keywords&words=$1&id=$2 [L]
RewriteRule /repertoire/(.*)-c-([0-9]*)-p-([0-9]*).html$ /repertoire/index.php?name=$1&dir=$2&start=$3 [L]
RewriteRule /repertoire/top-rank([0-9]{1,2}).html$ /repertoire/index.php?do=top-rank&pr=$1 [L]
RewriteRule /repertoire/(([a-z]|-)*).html$ /repertoire/index.php?do=$1 [L]

tout fonctionne parfaitement!

merci à ceux qui ont essayé de filer un coup de pouce!

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...