UR me rajoute étrangement 2 fois mes sous-répertoire ?!

Discussion dans 'URL Rewriting et .htaccess' créé par NeoKoD, 14 Décembre 2003.

  1. NeoKoD
    NeoKoD Nouveau WRInaute
    Inscrit:
    13 Décembre 2003
    Messages:
    11
    J'aime reçus:
    0
    Bonjour,

    Après quelques essais laborieux avec l'UR ( pourtant j'utilise des regex fréquemment au travail ! ) j'aimerais tout rediriger vers un fichier php afin dans un premier temps de mieux débugguer mes rédirections.

    Voila le principe :

    Cas n°1 :
    http://annonces.site.com
    => http://site.com/annonces/

    Cas n°2 :
    http://annonces.site.com/moto/
    => http://site.com/annonces/moto/

    Cas n°3
    http://annonces.site.com/moto/neuf/
    => http://site.com/annonces/moto/neuf/

    J'ai fait donc une expression vraiment simpliste qui catche le sous-domaine ($1) et la ressource demandé ( ce qui suit le ".com" dans $2 ) :

    Code:
    RewriteCond     %{HTTP_HOST}        !^site\.                         
    RewriteCond     %{HTTP_HOST}        !^www\.site\.
    RewriteCond     %{HTTP_HOST}        ^[^.]+\.site\.
    RewriteRule     ^(.+)$              %{HTTP_HOST}/$1
    RewriteRule     ^([^.]+)\.site\.com(.*)$  http://site.com/go.php?s=$1&rs=$2 [L]
    
    Ca marche pour les 2 premiers cas mais pas le 3eme.
    Voici les résultats ( ce qui apparait dans l'url ) :

    Cas n°1 :
    http://annonces.site.com
    => http://site.com/go.php?s=annonces&rs=/index.php
    donc ici c'est bon ( quoi je comprend pas pourquoi il ajoute index.php alors que je ne l'ai pas saisie explicitement et qu'il ne le fait pas pour les 2 cas suivant .. )

    Cas n°2 :
    http://annonces.site.com/moto/
    => http://site.com/go.php?s=annonces&rs=/moto//
    la c'est presque bon, je vois pas pourquoi il ajoute un / supplémentaire ?!

    Cas n°3
    http://annonces.site.com/moto/neuf/
    => http://site.com/go.php?s=annonces&rs=/moto/neuf/neuf/
    alors la j'comprend plus rien !

    Qu'est-ce que j'ai fait qui pourrait faire ces doublons ( '/' dans le cas n°2 et le 'neuf/' dans le cas n°3 ) ?

    Je me suis dis qu'il devait peut-être repasser une seconde fois dans le .htaccess mais pourtant j'ai mis 2/3 régles pour pas qu'il y passe s'il n'a pas de nom de sous-domaine ( ou qu'il s'agit de 'www' ).

    Merci de votre aide ..
     
  2. nikoshr
    nikoshr WRInaute occasionnel
    Inscrit:
    10 Juillet 2003
    Messages:
    295
    J'aime reçus:
    0
    Apparemment, le problème viendrait d'un bug d'Apache : http://archive.apache.org/gnats/7879 où, dans certains conditions et à partir d'une réécriture dans un .htaccess, une partie du chemin est ajoutée.

    Voilà ce que me racontent mes logs
    Code:
    RewriteCond: input='h1.site.com' pattern='!^site\.' => matched
    RewriteCond: input='h1.site.com' pattern='!^h2\.site\.' => matched
    RewriteCond: input='h1.site.com' pattern='^[^.]+\.site\.' => matched
    [per-dir ~/h1/] rewrite moto/neuf -> h1.site.com/moto/neuf
    [per-dir ~/h1/] add per-dir prefix: h1.site.com/moto/neuf -> ~/h1/h1.site.com/moto/neuf
    
    [per-dir ~/h1/] add path info postfix: ~/h1/h1.site.com/moto/neuf -> ~/h1/h1.site.com/moto/neuf/neuf
    
    [per-dir ~/h1/] strip per-dir prefix: ~/h1/h1.site.com/moto/neuf/neuf -> h1.site.com/moto/neuf/neuf
    [per-dir ~/h1/] applying pattern '^([^.]+)\.arrakeen\.net(.*)$' to uri 'h1.site.com/moto/neuf/neuf'
    [per-dir ~/h1/] rewrite h1.site.com/moto/neuf/neuf -> http://h2.site.com/dyn/ok.php?s=h1&rs=/moto/neuf/neuf
    La ligne importante là-dedans étant add path info postfix qui ne devrait pas être là. J'ai bien peur que la solution soit de passer tout ca dans un httpd.conf, si c'est possible, soit de bricoler les règles de réécriture pour virer le chemin dupliqué.
     
  3. NeoKoD
    NeoKoD Nouveau WRInaute
    Inscrit:
    13 Décembre 2003
    Messages:
    11
    J'aime reçus:
    0
    Hummm.. je veux bien penser qu'il s'agisse d'un bug dans RewriteURL mais le l'annonce de la correction du bug date de 2001 ( State: closed ).
    Et puis je tourne sur la derniere version de la branche 1.3 d'Apache (packet debian officiel).

    Le mieux serait donc de faire un une ristourne pour virer ça directement dans le .htaccess puisque je n'aurais pas accès au httpd.conf

    Si quelqu'un a une idée pour virer ces doublons ? sinon j'vais le faire directement en php ça sera peut-être plus simple.

    En tout cas je te remercie beaucoup de t'être penché sur mon problème.
     
  4. NeoKoD
    NeoKoD Nouveau WRInaute
    Inscrit:
    13 Décembre 2003
    Messages:
    11
    J'aime reçus:
    0
    A non c'est fixé dans la branche 2.0 :)
    This may not be fixed in 1.3.x, but it is fixed in 2.0.30

    Donc c'est un vieux bug mais il pouvait apparement pas patché la branche 1.3 :'(
     
  5. nikoshr
    nikoshr WRInaute occasionnel
    Inscrit:
    10 Juillet 2003
    Messages:
    295
    J'aime reçus:
    0
    Dans le cas que tu proposes, il y a une solution simple

    Code:
    RewriteCond     %{HTTP_HOST}        !^site\.                          
    RewriteCond     %{HTTP_HOST}        !^www\.site\. 
    RewriteCond     %{HTTP_HOST}        ^[^.]+\.site\. 
    RewriteRule     ^(.+)$              %{HTTP_HOST}/$1 
    RewriteRule     ^([^.]+)\.site\.com.*$  http://site.com/go.php?s=$1&rs=%{REQUEST_URI} [R]
    Mais ca ne va pas t'aider si tu veux faire autre chose avec l'URL.

    Ou alors

    Code:
    RewriteCond     %{HTTP_HOST}        !^site\.                          
    RewriteCond     %{HTTP_HOST}        !^www\.site\. 
    RewriteCond     %{HTTP_HOST}        ^[^.]+\.site\. 
    RewriteRule     ^(.+)$              %{HTTP_HOST}/$1 
    RewriteRule     ^([^.]+)\.site\.com(\/.*)\/[^\/]*$  http://site.com/go.php?s=$1&rs=$2 [R]
    en espérant que ca ne laisse pas passer un cas particulier
     
  6. NeoKoD
    NeoKoD Nouveau WRInaute
    Inscrit:
    13 Décembre 2003
    Messages:
    11
    J'aime reçus:
    0
    Excellente idée !
    Ca marche parfaitement :)

    Merci vraiment pour ton aide !
     
  7. sepang
    sepang WRInaute discret
    Inscrit:
    26 Janvier 2003
    Messages:
    58
    J'aime reçus:
    0
    Désolé de faire remonter ce vieux topic, mais j'ai tenté d'appliquer le même systeme pour avoir une redirection du genre

    nimportequoi.monsite.com
    devienne
    www.monsite.com/?$1

    Ca donne ca

    RewriteCond %{HTTP_HOST} !^site\.
    RewriteCond %{HTTP_HOST} !^www\.site\.
    RewriteCond %{HTTP_HOST} ^[^.]+\.site\.
    RewriteRule ^([^.]+)\.site\.com$ http://www.site.com/?$1 [QSA,L,R=301]

    Mais mon problème concerne les DNS. Le sous domaine n'étant pas forcément déclaré dans Bind, il me renvoie une erreur 500.
    Y'a t-il un moyen de déclarer tous les sous domaines du sites dans le fichier bind?

    En bref, comment avez vous fait?

    Merci d'avance

    A+
    Sepang
     
Chargement...
Similar Threads - rajoute étrangement fois Forum Date
WordPress rajouter le nom de domaine dans le permalien Débuter en référencement 4 Septembre 2022
je vais rajouter une page web dans mon site avec des rubriques est alors je peux... Débuter en référencement 27 Février 2017
Duplicate Content avec des / rajoutés dans l'URL Référencement Google 8 Janvier 2017
Duplicate content : on peut rajouter des / à la fin de mes url Débuter en référencement 2 Octobre 2016
Bien référencer un site artisanal sans rajouter des créations à tout va? Référencement Google 4 Novembre 2015
Rajouter un onglet à un menu Développement d'un site Web ou d'une appli mobile 11 Août 2015
Rajouter une chaine de caractères sur plus de 10000 pages peut il pénaliser ? Débuter en référencement 9 Janvier 2014
rajouter les www à ma boutique dans la barre d'adresse URL Rewriting et .htaccess 11 Octobre 2013
Rajouter de nouvelles pages sur mon site Débuter en référencement 26 Septembre 2013
Rajouter bouton imprimante sur une page web Débuter en référencement 22 Janvier 2013
Connaitre le trafic des dernières pages rajoutées Google Analytics 27 Novembre 2012
Le fait de rajouter des mots clés dans la balise Title influence et H1? Débuter en référencement 28 Juillet 2012
Soucis avec des %2520 rajouté à mes images avec espace URL Rewriting et .htaccess 5 Mars 2012
Enlever certains produits, les rajouter ensuite sur le site pour booster référencement? Débuter en référencement 7 Juillet 2011
Google rajoute à ses résultats de recherche une notification pour les sites piratés Google : l'entreprise, les sites web, les services 17 Décembre 2010
Rajouter 48h a une date Développement d'un site Web ou d'une appli mobile 22 Septembre 2010
rajouter home ou accueil à l'url Référencement international (langues, pays) 3 Novembre 2009
PhpBB - Rajouter l'attribut . WRInaute Développement d'un site Web ou d'une appli mobile 12 Mai 2009
Rajouter des annuaires, et encore, et encore, à la pelle bor Débuter en référencement 20 Février 2009
Comment rajouter des règles dans le htaccess de Joomla ? URL Rewriting et .htaccess 7 Février 2009