réécriture d'url
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
réécriture d'url
Bonjour,
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
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
Cordialement.
Guilhem.
Guilhem.
Salut,
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 :
Le ([0-9]*) représente n'importe quel nombre, et tu le retrouves dans l'expression de droite sous forme $1. Ainsi par exemple page3.php appelée dans l'adresse fera en fait appel à index.php?chemin=page3.php (tu n'es pas obligé de garder le .php, enfin ça dépend de comment tu gères ensuite)
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
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
Voir ma configuration
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
OK, bah c'est pas grave du tout ça
La ligne du milieu indique que pour index.php, faut pas la réécrire (sinon tu vas tourner en rond)
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

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
Voir ma configuration
-
- 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
Cordialement.
Guilhem.
Guilhem.
Hello,
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
Bon courage !
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
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
Voir ma configuration
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Argh.
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
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
Voir ma configuration
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Bonjour,
Je suis confronté à un nouveau problème:
J'ai dans mon .htaccess (situé à /www/boutique/):
Et j'ai mis dans mon index.php (situé à /www/boutique/):
Seulement, quand je tape dans mon navigateur:
et que j'appuie sur Entrée, il m'affiche dans l'url de mon navigateur:
Et non l'url que je viens de saisir.
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
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
Cordialement.
Guilhem.
Guilhem.
Ça me parait exécuter exactement ce qu'il y a dans tes règles (remplacer n'importe quelle requête par un appel à index.php sans paramètre), c'est pas ce que tu veux ? Tu as peut-être oublié de remettre le $1 pour faire passer ta variable ?
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Li tens revient, je ne fais riens. ♪
Normalement il n'y a pas de redirection vers l'URL "logique". C'est bizarre.
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
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
Voir ma configuration
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Et bien ça affiche toto mais ce que je voudrais c'est que la page index s'exécute (ce qui est le cas) MAIS que dans l'url il y ait ce que j'ai marqué dans le précédent message...
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Cordialement.
Guilhem.
Guilhem.
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Bon pour résumé et faire plus simple:
Quand je tape:
Je voudrais que:
S'afiche dans l'url de mon browser
Et non:
Que faut-il modifier à :
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
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
Cordialement.
Guilhem.
Guilhem.
Je crois que tu te méprend sur le mod_rewrite !
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
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 : Semrush [Bot] et 3 invités