mod_rewrite

Eléphanteau du PHP | 24 Messages

08 nov. 2007, 16:09

Bonjour,

Je ne suis peut-être pas au bon endroit et dans ce cas veuillez me pardonner.

Il ne s'agit pas d'un problème de PHP pur mais il en découle un peu. J'ai conçu un site dynamique (mais pour l'instant sans base de données) sans jamais approfondir Apache.
Là, j'ai des soucis avec mod_rewrite malgré les tutos et infos sur le sujet.

Mes adresses sont du type :

Code : Tout sélectionner

index.php?page=truc
ou :

Code : Tout sélectionner

index.php?dossier=machin&page=truc
ou bien encore :

Code : Tout sélectionner

index.php?dossier=machin&sousdossier=chose&page=truc
Cmment dois-je m'y prendre ?

Merci.[/code]

Eléphant du PHP | 61 Messages

08 nov. 2007, 20:35

Site sur THEOPERATION M.D. -> Nouvelle version (100%)
Ton code, tu indenteras; et le bohneur, tu feras.

Eléphanteau du PHP | 24 Messages

09 nov. 2007, 11:34

Bonjour Power Web,

Effectivement, j'avais raté ce tutoriel très clair et je comprend beaucoup mieux.
Cependant je n'arrive pas à vérifier si ma régle fonctionne bien. C'est facile lorsque l'on change d'extension mais comment être sur dans les autres cas (exotiques) ou c'est juste la syntaxe qui est réécrite ?
Cela se vérifie-t-il dans l'URI affichée par le navigateur ?
Merci pour ton aide.

Eléphanteau du PHP | 24 Messages

13 nov. 2007, 11:48

Bonjour,

Quelqu'un peut-il m'aider ou bien m'orienter ?
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 nov. 2007, 11:55

Le plus simple, c'est de tester.. tu rentres une url et tu vois sur quelle page tu arrives. Devrait être assez facile de savoir si cela correspond à ce que tu attends ;)

Sinon tu peux également nous donner tes règles de ré-écriture pour qu'on regarde ce qu'elles font. Tu pourras ainsi voir si elles correspondent bien à ce que tu attends :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 558 Messages

13 nov. 2007, 12:29

Il faut que tu mettent ".htaccess" .
je te donne le code.

Code : Tout sélectionner

RewriteEngine On RewriteRule ^truc.html /index.php?page=truc etc. et ce pour toutes les pages
j'explique.
tu active d'abord le mode rewrite avec ceci"RewriteEngine On"
ensuite tu declare tes pages qui seront affecté par l'url rewritte avec "RewriteRule ^"
tu met en premier le nom que tu veut donné a ta page. ensuite le nom réel de la page.
si se sont toute les pages qui sont affecté par l'url rewritte tu doit le faire pour chaque page.
si tu a des page protegé par un mdp ilest inutile de rewrité les url car aucun boat de referencement ira se connecté et encore moins s'inscrire.
je trouve cela bizarre que tu n'es rien trouvé il suffit de tapé url rewrite dans google et tu as plein de site traitant du referencement .
enfin bref.
n'oubie pas le robot.txt

Code : Tout sélectionner

User-agent: * Disallow: /index.php?page=truc etc. et ce pour toutes les pages
et ce pour que google ne reference pas ou supprime les urls que tu a declaré car ils n'est pas bon d'avoir plusieurs urls pour une seul page cela est encore pire pour le referencement que de laissé les url dynamique.

Eléphanteau du PHP | 24 Messages

13 nov. 2007, 13:04

Merci pour vos réponses, je m'explique

Voilà mon
.htacces
:

Code : Tout sélectionner

RewriteRule ^([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)\.htm$ /http://www.monsite.yxz/index.php?dossier=machin&sousdossier=chose&page=truc [L]
Lorsque je tape une adresse
normale
dans mon navigateur soit :

Code : Tout sélectionner

http://www.monsite.yxz/dossier/sousdossier/page
il me l'affiche, mais sans ma css contenu dans index.php.

Lorsque je tape la même adresse
exotique
il me l'affiche sans problème.
L'uri reste exotique. Cela veut-il dire qu'il ne tient pas compte du rewrite ?

Mammouth du PHP | 558 Messages

13 nov. 2007, 14:44

la apache ne comprend rien tu a oublie le"RewriteEngine On".
pour dire au serveur d'activé le mode rewrite
et inutile de mettre"/http://www.monsite.yxz"
mais directement"/index.php?page=truc"

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 nov. 2007, 15:16

Euh... elle est plutôt bizare ta règle....

Code : Tout sélectionner

^([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)\.htm$
Le masque correspond à une chaine
- commençant obligatoirement par 1 ou plus caractères alphanumérique ou tiret,
- nécessairement suivi d'un '/' puis de 1 ou plus carac alphanum ou '-',
- nécessairement suivi d'un '/' puis de 1 ou plus carac alphanum ou '-',
- nécessairement suivi d'un '/' puis de 1 ou plus carac alphanum ou '-',
- la chaine se terminant obligatoirement par ".htm"

Toutes les adresses qui vont correspondre à ce masque vont automatiquement être redirigée vers l'url :

Code : Tout sélectionner

/http://www.monsite.yxz/index.php?dossier=machin&sousdossier=chose&page=truc
avec en dur les paramètres "chose", "machin" et "truc", ce qui est à mon avis loin d'être ce que tu souhaites. Il te faudrait probablement récupérer les valeurs des parenthèses capturantes ($1, $2 ..) et les réutiliser.


Pour faire simple, donne un exemple de l'url que doit spécifier l'internaute, ainsi que l'adresse à laquelle tu veux qu'il soit redirigé :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

14 nov. 2007, 15:12

Merci hakazizi et Ryle et excusez ma réponse tardive...

Pour hakazizi : RewriteEngine On y est mais je ne l'ai pas retranscrit.
Pour Ryle : En fait ce que je souhaite c'est améliorer mon indexation par un moyen simple et donc transformer mes adresses exotiques. Dévoiler la structure des informations ne me dérange en rien (rappel : je n'utilise pas encore de BDD).

Pour cela, toujours si j'ai bien compris les tutos et infos sur le sujet, je veux donc que les liens exotiques construits sur mon site soit correctement interprétés par les robots (je ne vois pas l'intérêt pou un visiteur de retenir et de taper une adresse exotique) pou qu'ils puissent indexer en profondeur.

Je souhaite ensuite pouvoir vérifier afin d'être certain du résultat.

Voilà.

Eléphanteau du PHP | 24 Messages

19 nov. 2007, 10:19

Avez-vous besoin d'autres éléments ...

Merci de me dire.
Stallaf