Quasar Posté 6 Avril 2004 Posté 6 Avril 2004 Bonsoir à tous, J'ai suivi les conseils du site uzine.net pour faire mon url rewriting, mais ça marche pas. J'ai fait le test exactement comme indiqué dans cette page : http://www.uzine.net/spip_contrib/article....?id_article=106 et j'obtiens à chaque fois une erreur 500. (Mon hébergeur confirme que le mod rewrite est activé.) Je vous remercie d'avance si vous pouvez m'indiquer ce que je dois faire pour y arriver.
Dan Posté 7 Avril 2004 Posté 7 Avril 2004 Salut Quasar, L'article que tu as lu sur uzine.net est le même que celui que tu trouveras sur le Hub... et pour cause Mod_rewrite, ou la réécriture des URL "à la volée" QUelle est l'URL de ton site ? Et quel est le contenu de ton fichier .htaccess ? En général, une erreur 500 vient d'un mauvais fichier .htaccess, ou en tout cas d'une erreur de syntaxe dans celui-ci Dan
Quasar Posté 2 Mai 2004 Auteur Posté 2 Mai 2004 Bonsoir Dan, Après un mois d'absence, je reviens à charge pour l'url rewrting! J'espère que tu m'aideras! Voilà, j'ai commencé par faire le test proposé par l'article : Options +FollowSymlinks RewriteEngine on RewriteRule ^nexistepas.html$ trouve.html [L] Et j'obtiens une page erreur 500! J'ai ensuite mis [QSA,L] à la place de [L] et pareil, erreur 500. Et lorsque je teste la solution url rewriting pour spip : Options +FollowSymlinks RewriteEngine on RewriteRule ^article([0-9]*).html$ /article.php3?id_article=$1 [QSA,L] RewriteRule ^rubrique([0-9]*).html$ /rubrique.php3?id_rubrique=$1 [QSA,L] RewriteRule ^breve([0-9]*).html$ /breve.php3?id_breve=$1 [QSA,L] RewriteRule ^forum([0-9]*).html$ /forum.php3?id_forum=$1 [QSA,L] Tout en modifiant le fichier inc-urls-dist.php3, l'opération échoue, puisque j'obtiens les fichiers en .html mais avec une erreur 404. Mon hébergeur jure que le mod rewrite est activé. As-tu une idée d'où peut venir le souci ? Merci pour ton aide
Dan Posté 3 Mai 2004 Posté 3 Mai 2004 Salut Quasar, Ce qui me surprend, c'est que tu aies une erreur 500 dans le premier cas, et pas dans le second Essayes les règles suivantes pour Spip (peut-être tes fichiers ne sont-ils pas à la racine du site). Laisses de côté le "Options +FollowSymLinks" pour l'instant. RewriteEngine on RewriteRule ^article([0-9]*).html$ article.php3?id_article=$1 [QSA,L] RewriteRule ^rubrique([0-9]*).html$ rubrique.php3?id_rubrique=$1 [QSA,L] RewriteRule ^breve([0-9]*).html$ breve.php3?id_breve=$1 [QSA,L] RewriteRule ^forum([0-9]*).html$ forum.php3?id_forum=$1 [QSA,L] Dan
Quasar Posté 4 Mai 2004 Auteur Posté 4 Mai 2004 Salut Dan, Je te remercie pour ta réponse. En effet, sans le "Options +FollowSymLinks", l'url rewriting marche avec le code : RewriteEngine on RewriteRule ^article([0-9]*).html$ /article.php3?id_article=$1 [QSA,L] RewriteRule ^rubrique([0-9]*).html$ /rubrique.php3?id_rubrique=$1 [QSA,L] RewriteRule ^breve([0-9]*).html$ /breve.php3?id_breve=$1 [QSA,L] RewriteRule ^forum([0-9]*).html$ /forum.php3?id_forum=$1 [QSA,L] C'est quoi le sens de l'ajout ou non de "Options +FollowSymLinks"? Merci bcp pour ton aide, Dan.
Dan Posté 5 Mai 2004 Posté 5 Mai 2004 Salut Quasar, L'option +FollowSymlinks donne instruction au module mod_rewrite de suivre les liens symboliques (l'équivalent du "raccourci" sous Windows). Il semble que ton hébergeur ne permette pas de modifier cette option, ce qui génère l'erreur 500. Par contre, tes règles ne sont pas syntactiquement correctes et ne fonctionneront plus si tu es amené à déplacer ton arborescence Spip dans un sous-répertoire, à cause du / que tu mets en 2ème partie d'expression. Elle ne fonctionne que parce que tes fichiers sont à la racine. Tu devrais enlever les "/" Dan
Nicolas Posté 15 Mai 2004 Posté 15 Mai 2004 Bonjour, Si Spip est installé dans un sous-répertoire il faut utiliser le code suivant: RewriteEngine onRewriteRule ^sousrep/article([0-9]*).html$ /sousrep/article.php3?id_article=$1 [QSA,L] RewriteRule ^sousrep/rubrique([0-9]*).html$ /sousrep/rubrique.php3?id_rubrique=$1 [QSA,L] RewriteRule ^sousrep/breve([0-9]*).html$ /sousrep/breve.php3?id_breve=$1 [QSA,L] RewriteRule ^sousrep/forum([0-9]*).html$ /sousrep/forum.php3?id_forum=$1 [QSA,L]
Dan Posté 15 Mai 2004 Posté 15 Mai 2004 Nicolas, Pas d'accord avec toi, même si cela fonctionne... En mettant ces règles à la racine du site, elles seront testées pour chaque hit sur le serveur, ce qui le chargera trop. En les mettant (modifiées) dans le fichier .htaccess du répertoire, on limite les dégâts Dan
Nicolas Posté 16 Mai 2004 Posté 16 Mai 2004 Salut Dan, En mettant le .htaccess dans le répertoire spip j'obtiens une erreur 500 Code: RewriteEngine on RewriteRule ^article([0-9]*).html$ article.php3?id_article=$1 [QSA,L] RewriteRule ^rubrique([0-9]*).html$ rubrique.php3?id_rubrique=$1 [QSA,L] RewriteRule ^breve([0-9]*).html$ breve.php3?id_breve=$1 [QSA,L] RewriteRule ^forum([0-9]*).html$ forum.php3?id_forum=$1 [QSA,L]
Dan Posté 16 Mai 2004 Posté 16 Mai 2004 Voici le fichier .htaccess du Hub, alors que les publications sont dans un sous répretoire, et le .htaccess aussi RewriteEngine onOptions +FollowSymlinks#RewriteRule ^(.*)\.(png|gif|jpe?g|js|css)$ - [L]# urls spipRewriteRule ^(article|breve|rubrique)([0-9]+)\.html$ $1.php3?id_$1=$2 [QSA,L]RewriteRule (article|breve|plan|recherche|rubrique|sommaire)\.html$ - [F] Les seules différences avec le tien sont: on traite d'abord images, javascript et .css pour éviter de passer à travers toutes les règles pour ces fichiers l'utilisation du FollowSymlinks la notation [0-9]+ au lieu de [0-9]* (plus logique...) l'interdiction d'accéder aux squelettes (dernière ligne) Dan PS: assures-toi de ne pas avoir d'autres lignes qui entrent en conflit avec celles-ci ...
Nicolas Posté 16 Mai 2004 Posté 16 Mai 2004 Merci!! assures-toi de ne pas avoir d'autres lignes qui entrent en conflit avec celles-ci ... AMA c'était ça le pb! Par contre maintenant j'ai une erreur 404 ! Le site en question est en hébergement mutualisé; le pb vient p-e de là!
Nicolas Posté 16 Mai 2004 Posté 16 Mai 2004 Ca marche avec ce code (le htaccess se trouve dans le repertoire spip) RewriteEngine on#Options +FollowSymlinks # RewriteRule ^(.*)\.(png|gif|jpe?g|js|css)$ - [L] # urls spip RewriteRule ^(article|breve|rubrique)([0-9]+)\.html$ /repertoire_spip/$1.php3?id_$1=$2 [QSA,L] RewriteRule (article|breve|plan|recherche|rubrique|sommaire)\.html$ - [F]
Dan Posté 16 Mai 2004 Posté 16 Mai 2004 Nicolas, Tu aurais dû préciser l'hébergeur. Mais vu les règles que tu dois utilises (en forçant un chemin absolu) il se devine aisément. Je ne vais pas moi-même "monter du doigt" mais c'est un défaut de configuration chez l'hébergeur qui t'y force Tu aurais aussi pu faire usage du "RewriteBase" pour tous les sous-répertoires. Dan
coyote90 Posté 12 Juin 2004 Posté 12 Juin 2004 Tu aurais aussi pu faire usage du "RewriteBase" pour tous les sous-répertoires. Euhhh.. ça marche comment ce RewriteBase ??? Pour des raisons de maintenance, jai pris lhabitude dinstaller mes sites web en sous répertoires. jai donc physiquement : [b]http://www.monsite.fr/spip/'>]http://www.monsite.fr/spip/ je souhaiterais que ce sous-répertoire "spip" soit invisible aux internautes et quils naviguent sous spip avec ladresse suivante [b]http://www.monsite.fr/ je ne trouve pas la règle à utiliser, et je me perd entre les notions de RewriteBase et RewriteRule Pouvez-vous maider ???
rubenxela Posté 21 Juillet 2004 Posté 21 Juillet 2004 Super la réécriture sous spip c'est vraiment du gateau. Par contre je me demande comment désindexer les anciennes requètes en php .. J'ai mis en place un fichier robots.txt avec dedans : disallow /article.php3disallow /rubrique.php3 disallow /breve.php3 Est-ce que ça suffit ? est-ce qu'il n'y a pas de risques ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant