réécriture d'url
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
réécriture d'url
Je ne sais pas si certains pourront résoudre mon problème mais bon j'essaye quand même:
je souhaite rediriger toutes mes urls (monsite.com/page1.php, page2.php, ...) vers monsite.com/index.php?chemin=page1.php ou page2.php, ...
via une règle de réécriture. Je redirige toutes mes pages sur index.php en passant à l'url le paramètre 'chemin' qui prendra comme valeur le nom de la page (qui n'est pas fixé).
Mais je ne sais pas comment faire...
Pouvez-vous m'aider ?
Merci.
Cordialement.
guilhem.
Edit: Sachant que je peux passer des paramètres dans l'url monsite.com/page1.php comme monsite.com/page1.php?val=ok
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Guilhem.
Tu peux faire ça avec l'URL Rewriting.
Ca se passe dans un fichier .htaccess à la racine de ton site (à moins que tu ne sois ton propre hébergeur, dans ce cas tu dois pouvoir mettre ça dans la conf Apache).
Quelque chose du type :
Code : Tout sélectionner
RewriteEngine On
RewriteRule ^page([0-9]*)\.php /index.php?chemin=page$1.php
Aucun souci pour les paramètres supplémentaires, ils seront compris.
Plus d'infos sur l'URL Rewriting :
- Sur WebRankInfo
- Sur Webmaster Hub
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13

Code : Tout sélectionner
RewriteEngine On
RewriteRule ^index.php - [L]
RewriteRule ^([0-9a-Z]*)\.php /index.php?chemin=$1.php
Et ensuite, n'importequoi.php va sur index.php?chemin=n'importequoi donc n'importequoi.php?params=blabla ira sur index.php?chemin=n'importequoi¶ms=blabla.
Attention à la sécu : si dans index.php tu regardes le chemin et que tu inclus ce qu'on te donne dans chemin=toto, si un esprit malveillant appelle tonsite.com/index.php?chemin=http://siteduhacker/monscriptmalveillant.php baaah, ça peut faire très mal

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Code : Tout sélectionner
RewriteEngine On
RewriteRule ^index.php - [L]
RewriteRule ^([0-9a-Z]*)\.php http://localhost/projet1/test/index.php?chemin=$1
http://localhost/projet1/test/kjkjh.php?var=1
Et je tombe sur 500 Internal Server error....
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Guilhem.
En local il faut que tu actives le mod_rewrite dans ta conf Apache. Farfouille dans ton httpd.conf, tu dois avoir une ligne commentée du genre
Code : Tout sélectionner
#mod_rewrite
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Regarde ta log Apache, alors, en général ça aide à identifier le problème

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Je suis confronté à un nouveau problème:
J'ai dans mon .htaccess (situé à /www/boutique/):
Code : Tout sélectionner
RewriteEngine On
RewriteRule ^index.php - [P]
RewriteRule ([a-zA-Z0-9]*) http://www.monsite.com/boutique/index.php
Code : Tout sélectionner
<?php
$url="http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
$temp=str_replace("http://www.monsite.com/boutique/","http://www.autresite.com/boutique/",$url);
include($temp);
?>
Code : Tout sélectionner
http://www.monsite.com/boutique/mavariable
Code : Tout sélectionner
http://www.monsite.com/boutique/index.php
Et donc le code mis dans le index.php ne s'exécute pas correctement (le include n'est pas le bon...
Suis-je assez clair ?

Quelqu'un sait-il d'où cela peut-il venir ?
Si quelqu'un pouvait m'aider cela serait très cool de sa part car je cherche depuis un moment...

Merci !!!
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Guilhem.
Li tens revient, je ne fais riens. ♪
Ca fait quoi si tu mets juste echo 'toto'; dans ton index.php ?
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Guilhem.
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Quand je tape:
Code : Tout sélectionner
http://www.monsite.com/boutique/mavariable
Code : Tout sélectionner
http://www.monsite.com/boutique/mavariable
Et non:
Code : Tout sélectionner
http://www.monsite.com/boutique/index.php
Code : Tout sélectionner
RewriteEngine On
RewriteRule ^index.php - [P]
RewriteRule ([a-zA-Z0-9]*) http://www.monsite.com/boutique/index.php
Guilhem.
Il ne s'agit en aucun cas d'une redirection ou d'une réinscription de l'adresse dans le navigateur. Tout ce que fait le mod_rewrite c'est que quand il reçoit une requête pour http://www.monsite.com/boutique/mavariable il se comporte comme si l'on avait appelé l'adresse http://www.monsite.com/boutique/index.php. Rien de plus

Ce que tu veux c'est une redirection, qui doit se faire au niveau des entêtes HTTP (Location: http://www.monsite.com/boutique/mavariable) afin que l'utilisateur soit réellement redirigé

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firesalamandre Firefox/1.5.0.4
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités