Url rewriting à travers des dossiers

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Url rewriting à travers des dossiers

par Kunt » 23 nov. 2008, 12:58

Oui, mon fichier .htaccess se trouve bien à la racine.

Le problème c'est que quand je vais à cette adresse cela affiche l'url réelle, et non la fausse qui se termine par un .html.

Pour l'instant ce que j'ai fais c'est que j'ai installer le plugin "Redirection" sur Wordpress. J'ai créer des règles une par une, ...?page=1 -> ...page-1.html etc. Pour que l'adresse réelle ne soit pas affichée dans la barre d'adresse, j'ai tester plusieurs options, et celle qui marche s'appele "Pass through", je ne sais pas trop ce que cela représente, mais ça serait peut être bien si je pouvais mettre ça dans mon fichier .htaccess, enfin je sais pas trop comment ça marche.

Merci de votre aide en tout cas.

par Ryle » 23 nov. 2008, 10:52

Euh... je suis pas certain de bien comprendre le problème mais....

Pour que l'urlrewriting fonctionne à la racine de ton site, il faut que le fichier .htaccess contenant la redirection soit plaçé à la racine également et non dans un sous dossier (sinon il ne sera valable que pour le sous dossier)

Il te suffit ensuite de récupérer le paramètre souhaité et de le passer à ton script comme tu l'avais fait initialement :

Code : Tout sélectionner

RewriteRule ^effets-sur-image-page-([0-9]+)\.html$ /dossier1/dossier2/effets-image.php?page=$1 [L]

par Kunt » 23 nov. 2008, 00:25

Bonsoir, en fait j'ai réussi d'une autre façon, la redirection marche mais dans l'adresse url il est marqué l'adresse réelle, et non pas la "fause" .html.

Mon code est le suivant :

Code : Tout sélectionner

RewriteRule ^effets-sur-image-page-([0-9]+)\.html$ http://www.monsite.fr/effets-sur-image?page=$1 [L]
Je sais pas comment faire pour afficher la "fause" url.

Merci.

par jojolapine » 22 nov. 2008, 14:49

Le problème vient surement de la deuxième partie de ta ligne réécriture...
pour essayer d'avoir le bon chemin, essaye de mettre un fichier php de test dans ton dossier2, qui contient
<?php
echo realpath(__FILE__);
et dit nous le résultat...

Url rewriting à travers des dossiers

par Kunt » 19 nov. 2008, 20:11

Bonjour,

Tout d'abord mon site tourne sous le CMS Wordpress.

Mon site propose des tutoriels, en 8 catégories, chaque catégorie contient des pages de 10 tutoriels chacune.
Avant je rentrer en brut mes tutoriels, tout à la main, pour chaque page.
J'ai récemment créer tout une administration pour mes tutoriels, maintenant, je peux les gérer via ma BDD. Les créer, modifier, supprimer, triés par catégorie etc...

J'ai donc une page en PHP par catégorie.
Pour afficher correctement ma page, j'ai créer une nouvelle page dans Wordpress et j'ai mis un include, jusqu'à la tout va bien.

Ma page php est découpée en page... de 10 tutoriels, pour passer d'une page à une autre je passe par une variable : effets-sur-image?page=2, effets-sur-image?page=3, etc...

C'est donc de la forme :
http://www.monsite.fr/effets-sur-image?page=1

Jusqu'à la, tout marche comme je veux !

Le problème est maintenant que j'aimerais une url de la forme :
http://www.monsite.fr/effets-sur-image-page-1.html

Je me suis donc penché vers l'url rewriting.
Tout d'abord mon fichier : effets-sur-image.php se trouve dans des sous dossiers de mon site :
http://www.monsite.fr/dossier1/dossier2/
J'ai donc tout d'abord essayer de faire fonctionner l'url rewriting dans ce dossier, c'est à dire directement dans ma page php, et non pas en passant par l'include présent dans la page de mon site (vous me suivez ? :) ). J'ai créer mon fichier .htaccess, etc... etc... L'url rewriting marche !

Problème, maintenant, je dois adapter cela à mon site !
Donc quand sur mon site je suis par exemple sur la page 1, je veux aller sur la page 2, je clique donc sur le "2" qui pointent vers : http://www.monsite.fr/effets-sur-image-page-2.html
(=http://www.monsite.fr/effets-sur-image?page=2), mais ça ne marche pas ! J'ai essayer de mettre le .htaccess à la base de mon site, ou dans le dossier2, marche pas... J'ai bien sur modifier les chemins d'accès.

Dans http://www.monsite.fr/dossier1/dossier2/ :

Code : Tout sélectionner

Options +FollowSymlinks RewriteEngine on RewriteRule ^effets-sur-image-page-([0-9]+)\.html$ /dossier1/dossier2/effets-image.php?page=$1 [L]
Voilà le .htaccess qui marche, mais dans les sous dossiers, j'aimerais donc savoir comment je peux faire pour l'adapter à la base de mon site.

J'espère que vous m'avez compris...je suis peut être pas très clair. En tout cas merci de votre aide !