probleme de redirection d'url avec les rewriterule

2007-07-14 Par sujet petit fabien

Bonjour, j'ai le probleme suivant, google a référencé la page d'accueil de mon 
site sous la forme http://www.monserveur.com/?cd=menu. Je voudrais qu'elle soit 
référencée en http://www.monserveur.com/ tout simplement. J'ai un serveur zope 
derriere un apache2 avec les rewriterule suivantes qui marchent trèsbien:#pour 
awstatsRewriteRule ^/cgi-bin/awstats(.*) /cgi-bin/awstats$1 [L,PT]#pour le 
virtual monsterRewriteRule ^/(.*)  
http://localhost:9673/VirtualHostBase/http/%{SERVER_NAME}:80/VirtualHostRoot/$1 
[L,P] Je pense que apache a trouvé le lien ?cd=menu dans un fichier 
index2.php qui trainait dans /var/www/, c'est pour cela je crois qu'il me l'a 
référencé avec ça.Le probleme est que je peux taper n'importe quoi de la forme 
http://www.monserveur.com/?x=fdsfsdffsdfggg (par exemple), je tombe sur ma page 
d'acceuil et l'url reste comme ça alors qu'elle devrait etre de la forme 
http://www.monserveur.com/. Je tiens à préciser que les liens sur ma page 
d'acueil marchent bien. J'ai donc essayé plusieurs rewriterule qui redirige par 
exemple http://www.monserveur.com/?z=iitirriicirczc vers 
http://www.mon.serveur.com/ mais sans succès, voila ce que j'ai essayé : 
RewriteRule ^/\?.*  
http://localhost:9673/VirtualHostBase/http/%{SERVER_NAME}:80/VirtualHostRoot/ 
[L,P] RewriteRule ^/\?(.*)  
http://localhost:9673/VirtualHostBase/http/%{SERVER_NAME}:80/VirtualHostRoot/$1 
[L,P] #RewriteRule ^/?.*  
http://localhost:9673/VirtualHostBase/http/%{SERVER_NAME}:80/VirtualHostRoot/  
[L,P] Si quequ'un pouvait m'aiguiller, ça serait sympa parce que là, je vois 
vraiment pas comment je dois faire pour rediriger ces url ou alors les 
interdire le cas échéant. merci d'avance.
_
Besoin d'un e-mail ? Créez gratuitement un compte Windows Live Hotmail, plus 
sûr, plus simple et plus complet !
http://www.windowslive.fr/hotmail/default.asp

Re: probleme de redirection d'url avec les rewriterule

2007-07-14 Par sujet Jean-Damien Durand
On Sunday 15 July 2007 03:30:13 petit fabien wrote:
 Le probleme est que je peux taper n'importe quoi de
 la forme http://www.monserveur.com/?x=fdsfsdffsdfggg (par exemple), je
 tombe sur ma page d'acceuil et l'url reste comme ça alors qu'elle devrait
 etre de la forme http://www.monserveur.com/.

 Si quequ'un pouvait m'aiguiller, ça serait sympa parce que là, je 
 vois vraiment pas comment je dois faire pour rediriger ces url ou alors les
 interdire le cas échéant. merci d'avance.

La partie 'query' d'une URL n'est pas prise en compte par mod_rewrite sauf si 
tu la spécifie dans un rewritecond puis avec un ? dans un rewriterule.
Tu peux t'inspirer de ceci:

  IfModule mod_rewrite.c
RewriteEngine On
RewriteCond %{QUERY_STRING} .
RewriteRule ^.*$ ? [R=301,L]
  /IfModule

qui va complètement enlever la partie query_string de l'URL et faire un 
permanent redirect (important pour les robots).

PS: ton mail original, je l'ai recu sous la forme d'une seule très longue 
ligne sans newline (!?).

PPS: d'autre directives, comme DirectoryIndex, peuvent affecter l'url de 
base '/', après le rewrite.