Jump to content
Sign in to follow this  
ChatSys

Rediriger un sous-domaine vers un dossier virtuel

Rate this topic

Recommended Posts

Bonjour,

voici la solution pour rediriger http://test.mondomaine.ext vers http://www.mondomaine.ext/test/ :

J'ai suivi ce post : http://forum.ovh.com/showthread.php?t=4562 mais le rewrite ne fonctionne pas, je remets ici ce qui fonctionne :

1ere étape : la redirection

1. dans /var/named/mondomaine.fr.hosts

j'ajoute

* IN XXX.XXX.XXX.XXX

(l'adresse ip du serveur)

2. dans usr/local/apache/conf/httpd.conf

je remplace :

<VirtualHost 213.251.133.128>
ServerAdmin webmaster_AT_mondomaine.fr
DocumentRoot /home/mondomaine/www
User mondomaine
Group users
ServerName www.mondomaine.fr
ServerAlias mondomaine.fr
CustomLog logs/mondomaine-access_log combined
ScriptAlias /cgi-bin/ /home/mondomaine/cgi-bin/
</VirtualHost>

par :

<VirtualHost 213.251.133.128>
ServerAdmin webmaster_AT_mondomaine.fr
DocumentRoot /home/mondomaine/www
User mondomaine
Group users
ServerName www.mondomaine.fr
ServerAlias mondomaine.fr
ServerAlias *.mondomaine.fr
CustomLog logs/mondomaine-access_log combined
ScriptAlias /cgi-bin/ /home/mondomaine/cgi-bin/
</VirtualHost>

3. je redémarre les services depuis webmin et je crée un répertoire /test dans /home/mondomaine/www

4. je place un .htaccess dans /home/mondomaine/www

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www.mondomaine.fr$ [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.mondomaine\.fr$ [NC]
RewriteRule ^/?(.*) [url="http://www.mondomaine.fr/%1/$1"]http://www.mondomaine.fr/%1/$1[/url] [QSA,R=301,L]

Ainsi le visiteur qui ira sur test.mondomaine.fr sera renvoyé sur www.mondomaine.fr/test/

2eme étape : rendre la redirection invisible : conserver "test.domaine.fr" affiché dans le navigateur

1. il faut installer mod_proxy qui n'est pas par défaut dans apache de la release 2 d'ovh :

Tu vas dans le dossier du fichier ebuild

cd /usr/local/portage-ovh/net-www/apache-ovh

Tu édites ce fichier ebuild (changer éventuellement le numéro de version, plus bas aussi)

vi apache-ovh-2.0.59.ebuild

Tu ajoutes les lignes enable-proxy et enable-proxy-http

../..
--enable-rewrite \
--enable-proxy \
--enable-proxy-http \
../..

Comme le fichier ebuild a été modifié, il faut mettre à jour le "manifest"

ebuild apache-ovh-2.0.59.ebuild digest

Compilation d' apache avec les nouvelles options

emerge apache-ovh

ça compile... tu prends un café et tu penses que ce soir, pour une fois, tu pourrais acheter des fleurs à ta femme (vous me remercierez après)

puis tu relances apache

/etc/init.d/apache restart

2. Modifier le .htaccess :

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www.mondomaine.fr$ [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.mondomaine\.fr$ [NC]
RewriteRule ^/?(.*) [url="http://www.mondomaine.fr/%1/$1"]http://www.mondomaine.fr/%1/$1[/url] [P,QSA,R=301,L]

Et voilà !

Merci à Dan pour son aide

Edited by ChatSys

Share this post


Link to post
Share on other sites

Je ferais une remarque :

Il est inutile d'ajouter ceci dans le fichier named.conf :

zone "*.mondomaine.fr" {
type master;
file "/var/named/mondomaine.fr.hosts";
};

vu que la zone mondomaine.fr est déjà définie... ;)

Et je remplacerais la règle par :

RewriteRule ^/?(.*) http://www.mondomaine.fr/%1/$1 [QSA,R=301,L]

pour éviter d'avoir un double // au cas où le / ferait partie de la chaîne transmise à mod_rewrite.

Je ne comprends pas ta dernière phrase :

Mon dernier problème est de faire cette redirection de manière invisible sans créer un boucle de redirection...

Que veux-tu dire par "invisible" ? COmme la redirection est externe, tu auras toujours la nouvelle adresse dans l'URL.

Ou alors il faut utiliser mod_proxy :P

Share this post


Link to post
Share on other sites

Merci Dan !

J'ai fait la correction et je me renseigne sur mod_proxy.

Le but étant que sur le navigateur, le visiteur reste sur test.domaine.fr/blabla ce que j'avais traduit par "redirection invisible sans créer un boucle de redirection" car évidement si j'écris :

RewriteRule ^/?(.*) /%1/$1 [QSA,R=301,L] 
ou
RewriteRule ^/?(.*) http://%{HTTP_HOST}/%1/$1 [QSA,R=301,L]

Je boucle en boucle en boucle en boucle en boucle en boucle en boucle en boucle en boucle ....

Edited by ChatSys

Share this post


Link to post
Share on other sites

C'est bête mais je ne trouve pas où télécharger mod_proxy.so, je ne trouve que des .c... (et en plus c'est mod_proxy_html donc c'est pas bon)

Mon répertoire apache/modules est presque vide : mod_suphp.so et httpd.exp font une bataille en attendant leur compagnon !

(lien vers la doc, je complèterai mon premier post quand j'aurai trouvé le St Graal) :

http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

Edited by ChatSys

Share this post


Link to post
Share on other sites

Je sèche..

Impossible de faire prendre en compte le mod_proxy à apache, j'ai recompilé je ne sais combien de fois sans succès et un plantage m'a mis le serveur en rade pendant 1 heure. Je vais donc passer à autre chose en attendant une nouvelle piste... J'aurais bien voulu terminer ce tuto :/

Share this post


Link to post
Share on other sites

Tu es en release 2 ... voici donc les instructions pour recompiler Apache avec mod_proxy ;)

Tu vas dans le dossier du fichier ebuild

cd /usr/local/portage-ovh/net-www/apache-ovh

Tu édites ce fichier ebuild (changer éventuellement le numéro de version, plus bas aussi)

vi apache-ovh-2.0.59.ebuild

Tu ajoutes les lignes enable-proxy et enable-proxy-http

../..
--enable-rewrite \
--enable-proxy \
--enable-proxy-http \
../..

Comme le fichier ebuild a été modifié, il faut mettre à jour le "manifest"

ebuild apache-ovh-2.0.59.ebuild digest

Compilation d' apache avec les nouvelles options

emerge apache-ovh

ça compile... et au final tu relances apache

/etc/init.d/apache restart

Cela devrait fonctionner comme tu veux et tu pourras utiliser le flag [P] dans tes réécritures d'URLs.

Bonne chance à toi :!:

Share this post


Link to post
Share on other sites

AHHHHHHHHHHHHH

C'est ce que j'ai fait mais comme je ne voyais rien dans phpinfo je me disais que ce n'avait pas fonctionné !

Du coup suite à ton message, j'ai essayé le [P] et ça fonctionne : eureka !

Merci Dan !

Je complète le tuto de ce pas.

Share this post


Link to post
Share on other sites

C'est parfait comme solution !!!

je suis intéressé :)

ps : je considère que le 1er post est celui de référence (oui/non ?)

Share this post


Link to post
Share on other sites

Ce sont les réponses de Dan qui sont bonnes ;) A prendre en compte suivant ton problème ! :)

Si tu sèches encore, ouvre un autre post et tu publies ton problème.

Share this post


Link to post
Share on other sites

Comme indiqué, j'ai modifié le premier post avec les réponses de Dan.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By cyberdede
      Bonjour à tous

      je voudrais quand je tape https;//monsite/dossier accéder à https;//monsite/dossier/index.php
      or j'accède à https;//monsite/dossier/ avec un 404

      en localhost ca fonctionne

      pour la racine https;//monsite c'est ok

      mon htaccess
       
      RewriteEngine On Options -Indexes RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] RewriteCond %{HTTPS} ^off$ [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] AddDefaultCharset UTF-8 ErrorDocument 404 /404.php  
    • By kevinjoseph
      Bonjour, j’ai un gros problème sur mon site Wordpress . Du jour au lendemain, mon site wordpress fais une redirection vers un autre site wordpress que j’ai crée ,sans que je touche à quoi que ce soit. Quand j’essai d’aller sur l’admin pour désactiver les plugins et voir d’où peut venir le problème. Impossible d’accéder, sa me redirige vers l’admin de l’autre site. Au final il est impossible que j’accède au site via (google, la bare de recherche, les favoris, l’admin…) pour voir ce qu’il fonction pas, j’ai juste accès au FTP. J'ai essayé de voir d'où pouvez venir ce bug en supprimant les plugins, le théme, mes derniers modifications, regarder sur le .htaccess si il y avais quelque par le nom de domaine de l'autre site écrit. Ca n'a rien changer, le site continue de ce rediriger automatiquement vers l'autre site. Si vous avez une idée d’où sa peut venir ou comment faire pour arranger ça et surtout comment éviter que sa ce reproduise. Sa m’aiderai beaucoup, merci d’avance.
      voici le code du .htaccess:
       
      # BEGIN WordPress
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      </IfModule>

      # END WordPress
      ~   Ludovic • 16:28    
    • By leobk
      Bonjour,
       
      J'ai un sous-domaine www.fr.monsite.com dédié pour la réservation des vols
      j'ai redirigé récemment ce sous-domaine vers le site principal www.monsite.com et le nombre des erreurs 404 a explosé
      un nombre énorme d'URLs de type :
      www.fr.monsite.com/fr/vols/index?f_type=01&f_departure=TLS&f_destination=DJE&f_date_from=08/09/2013&f_date_to=22/09/2013&f_flexibility=3&f_paxs_adults=2&f_paxs_childs=0&f_paxs_infants=0
      redirigent vers :
      www.monsite.com/fr/vols/index?f_type=01&f_departure=TLS&f_destination=DJE&f_date_from=08/09/2013&f_date_to=22/09/2013&f_flexibility=3&f_paxs_adults=2&f_paxs_childs=0&f_paxs_infants=0
       
      L'URL de destination est biensur introuvable 404, puisque les variables utilisés dans les deux sites ne sont pas identiques
      Voici la structure d'URL si on fait une recherche de vol sur le site principal :
      https://www.monsite.com/fr/resa?depart=SXF&arrivee=NBE&aller=2017-11-10&retour=2017-11-30&adultes=1&enfants=1&bebes=0&departureDateTime_D=&arrivalDateTime_D=&departureDateTime_R=&arrivalDateTime_R=&fareGroupName=&fareGroupName_R=&sens=2&currency=EUR&airline=&flightNumber=&flight=&flight_retour=&webview=0&felxibilite=2
       
       
      existe-il un moyen pour rediriger l'ensemble des URLs dynamiques du sous-domaines vers une URL statique du domaine principale (autre que l'accueil)?
       
       
    • By PieceMobile
      Bonjour,



      J'espère que vous allez tous bien.



      Auriez vous une solution pour rediriger ( via une règle htaccess par exemple ) :



      http://www.mon-site.com/blabla.html?ps_mobile_site=1



      vers : http://www.mon-site.com/blabla.html



      A mon avis, s'agissant d'un paramètre d'URL, de ce que j'ai cru comprendre -a mon petit niveau- c’était pas possible, mais ça me dépannerai pas mal si l'un d'entre vous avait une idée.



      Merci d'avance





×
×
  • Create New...