Boumbadaboum Posté 4 Août 2005 Posté 4 Août 2005 Bonjour, J'utilise un url rewriting sur mon site (grâce à Dan ). Ca marchait très bien. Mais j'ai ajouté une rubrique, et ça ne marche pas pour celle ci. Voici le htaccess, après j'explique les symptomes: Options +FollowSymlinksRewriteEngine onRewriteRule ^mot-([a-z])\.htm$ /?mot=$1 [L]RewriteRule ^section-([a-z-]+)\.htm$ /?section=$1 [L]RewriteRule ^([a-z-]+)\.htm$ /?expression=$1 [L]RewriteRule ^/menu/action-([a-z]+)\.php$ /?action=$1 [L] En fait le problème vient de la dernière ligne le reste fonctionne bien. Les trois premières lignes agissent sur des scripts/pages qui sont dans un même répertoire (chemin: index/premierRepertoire). Ca marche. La dernière ligne agit sur des scripts qui sont dans un autre répertoire (chemin : index/autreRepertoire). ça marche pas. Les liens dans les pages sont du type action-proposer.php pour la dernière ligne j'ai essayé: action-([a-z]+)\.php$ /?action=$1 [L] fonctionne pas /action-([a-z]+)\.php$ /?action=$1 [L] fonctionne pas action-([a-z]+)\.php$ /?action=$1 [L] fonctionne pas J'ai essayé d'autre trucs aussi ( ) ça fonctionne pas plus pour la dernière ligne. Au mieux ça m'affiche une page sans la feuille de style Donc si y'a un légionnaire tout terrain de la programmation qui passe par là, je serais heureuse d'écouter son avis ! Merci d'avance
Dan Posté 4 Août 2005 Posté 4 Août 2005 "Fonctionne pas" ? Faut interpréter cela comment ? Page 404, erreur 500, rien du tout ? Merci de préciser les symptômes parce qu'on ne va probablement pas recréer ton site à l'identique juste pour t'aider, non ? Si cela fonctionne mais sans la feuille de style, c'est parce que tu changes virtuellement de répertoire Tu passes de /menu/ à / Donc il suffit d'utiliser une balise <base href="..."> dans le fichier exécuté à la racine (probablement index.php ?)
Boumbadaboum Posté 5 Août 2005 Auteur Posté 5 Août 2005 Bonjour Dan, Oui effectivement c'était un peu flou, j'étais fatiguée. L'erreur que j'obtiens est effectivement une erreur 404. En fait cela ne fonctionnait pas non plus même sans la feuille de style car le contenu n'était pas celui qu'il aurait dû être mais un contenu par défaut. Vraiment je n'ai aucune piste, mais j'ai vraiment besoin d'y arriver.
Dan Posté 5 Août 2005 Posté 5 Août 2005 Pourquoi mets-tu un / devant /menu/action alors que tu ne le mets pas ailleurs ? Pourquoi cette dernière règle veut convertir un fichier .php ? Ce n'est pas du .htm comme les autres ? J'imagine à lecture de tes règles que tu es chez OVH ? (à cause du / en second argument) Remplace la dernière par: RewriteRule menu/action-([a-z]+)\.(php|html?)$ /?action=$1 [L] Il faudra mettre une balise <base href="..."> dans le <head> de index.php. Dan
Boumbadaboum Posté 5 Août 2005 Auteur Posté 5 Août 2005 Je suis chez ovh bien vu . Pourquoi cette dernière règle veut convertir un fichier .php ? Ce n'est pas du .htm comme les autres ? En fait toutes les pages sont en php j'ai mis htm sur les pages de contenu mais sur une page de formulaire ça fait bizarre alors j'ai laissé php. Pourquoi mets-tu un / devant /menu/action alors que tu ne le mets pas ailleurs ? Je viens d'essayer cette formule la effectivement y'a un changement: plus d'erreur 404 mais une page sans feuille de style et une erreur : warting failed to open stream (../morceaux/connexions.php) Il faudra mettre une balise <base href="..."> dans le <head> de index.php là je n'ai pas compris.
Dan Posté 5 Août 2005 Posté 5 Août 2005 Donc la seule chose qui manque, comme annoncé, est une balise <base href="..."> dans le fichier index.php (ou celui qui est lancé par défaut lorsqu'on ne nomme que le répertire racine) Cette balise permet de faire savoir au navigateur à partir d'où il faut résoudre les liens symboliques, comme ton warting failed to open stream (../morceaux/connexions.php) Le navigateur croit être dans le sous-répertoire /menu, alors qu'avec la réécriture il se trouve à la racine... de ce fait le répertoire ../morceaux/ n'exite pas Donc, mets la balise <base href="http://www.tondomaine.tld/"> dans le <head> de ton fichier index.php, et ce sera bon Une alternative serait de mettre tous les liens de ce fichier en absolu...
Boumbadaboum Posté 5 Août 2005 Auteur Posté 5 Août 2005 ouh la je viens d'essayer cette solution y'a du changement, mais bon... maintenant la page d'accueil ne retrouve plus le chemin pour certaines images et les liens sont tous brisés. J'ai copié collé texto cette phrase dans le head de index.php <base href="http://www.tondomaine.tld/"> (en replacant tondomaine qd même) Je comptais demander que l'on m'explique ce que fait ce lien, mais déjà je voudrais bien que ça fonctionne ! Déjà merci pour tes réponses Dan, je voudrais bien y arriver, ça avance lol
Boumbadaboum Posté 5 Août 2005 Auteur Posté 5 Août 2005 sinon je viens d'essayer en enlevant le <base href ...> et en mettant un lien absolu dans mon fichier de test. j'ai la même erreur qu'avec un lien relatif comme avant : failed to open stream...
Dan Posté 5 Août 2005 Posté 5 Août 2005 Tu aurais pu au moins avoir la curiosité de te renseigner sur la syntaxe de la balise <base...>. On ne va pas développer ton site à ta place tout de même http://www.w3.org/TR/REC-html40/struct/links.html#h-12.4 Mets l'url, avec le nom de index.php dans celle-ci !
Boumbadaboum Posté 5 Août 2005 Auteur Posté 5 Août 2005 oui ok je viens de lire la page merci pour le lien. Cela étant je n'ai pas trop compris, donc j'explique comment c'est organisé: 1) J'ai une page index.php. Cette page inclu au centre différentes parties de contenu selon la variable transmise par les liens. (les trois premières lignes de l'url rewriting). Ces parties de contenu sont dans le même répertoire. Tout fonctionne. 2) J'ai une page formulaire dans le répertoire "action". Cette page inclu aussi différentes parties selon la variable transmise par les liens (la dernière ligne de l'url rewriting) Toutes les parties à inclure dans la page formulaire sont dans le même répertoire action. Là ça ne fonctionne pas. Donc si quelqu'un à la patience de m'expliquer quoi écrire où avec le tuyau que Dan m'a filé... Merci d'avance
Boumbadaboum Posté 5 Août 2005 Auteur Posté 5 Août 2005 Bon je vais avoir l'air un peu lourde mais bon faut bien débuter. Sans m'écrire texto le truc, ça serait sympa si quelqu'un pouvait m'expliquer ces histoire de changement virtuel de répertoire. Effectivement je viens de vérifier dans la page qui apparait en cliquant le lien qu'elle inclue le feuille de style de l'accueil et non celle de la page dans laquelle elle est censée être inclue. là je sens que j'en ai pour la journée pfouu
Boumbadaboum Posté 5 Août 2005 Auteur Posté 5 Août 2005 J'ai réussi ! En fait j'ai pulvérisé le répetoire à l'aide d'un missile "supprimer" puis j'ai transférer les fichiers rebelles à l'intérieur du répertoire base. J'ai armé deux nouvelles variables et je les ai positionné dans la page d'index. ça marche. Normal c'est plus simple
Dan Posté 5 Août 2005 Posté 5 Août 2005 D'autant plus que nulle part dans tes règles de réécriture tu ne mentionnais le répertoire "action"... on aurait eu du mal à t'aider, non ?
Boumbadaboum Posté 5 Août 2005 Auteur Posté 5 Août 2005 (modifié) En fait je me suis emmêlée les pinceaux en changeant les noms des répertoires sur le vrai fichier htaccess et celui mentionné ici (dès fois qu'il y ait un petit malin que ça intéresse de trop près...). Vous allez me dire de toute façon on connait pas le nom de site ! Alors je vais vous répondre : Surtout qu'en plus il est pas en ligne! trois précautions valent mieux qu'aucune, j'essaierai d'être plus rationnelle quand je m'y connaitrais plus. Merci en tout cas pour les réponses ! Tiens y'a pas une section sécurité/piratage sur le Hub? Modifié 5 Août 2005 par Boumbadaboum
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant