IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Redirection d'une url:8080 vers une autre url2:8081


Sujet :

Apache

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut Redirection d'une url:8080 vers une autre url2:8081
    Bonjour,

    Sur un serveur Web Apache2.2+Tomcat6, je voudrai faire une redirection d'url lorsque une personne se connecte avec un certificat ssl à https://site.X.net:8080 vers l'url https://site.Y.net:8081.
    Car, en faite, une partie du nom du site à changer (dû à un changement d'hébergeur ... mauvais choix de nom du site au départ) mais il faudrait que l'ancienne url fonctionne toujours.

    Pour l'instant (pour ne pas toucher au serveur), j'effectue mes tests sur une autre machine, la seule chose différente, c'est que le site n'est pas sécurisé avec un certificat ssl donc on accède au site via l'url http://site.Y.net:8081.

    J'ai décommenté la ligne suivante dans le fichier httpd.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LoadModule proxy_http_module modules/mod_proxy_http.so
    Puis j'ai ajouté au fichier httpd.conf ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <IfModule mod_proxy.c>
    ProxyPass / http://127.0.0.1:8081/
    ProxyPassReverse / http://127.0.0.1:8081/
    </IfModule>
    Ensuite j'ai modifié le server.xml comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Connector port="8081" proxyPort="8080" proxyName="localhost" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443"
    		   useBodyEncodingForURI="true" URIEncoding="UTF-8" />
        <!-- A "Connector" using the shared thread pool-->
        <!--
        <Connector executor="tomcatThreadPool"
                   port="8081" proxyPort="8080" proxyName="localhost" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />
    Après avoir redémarré les deux services, rien n'est changé.

    J'ai de nouveau modifié le fichier httpd.conf et rajouté cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Redirect permanent http://site.X.net http://site.Y.net
    Mais ca ne marche pas non plus.
    Quand je tape l'adresse http://site.X.net:8080, j'accède au site web apache (alors que je voudrai une redirection vers le site web tomcat http://site.X.net:8081).
    Et lorsque je rentre l'url http://site.Y.net:8080, je n'ai pas non plus la deuxième redirection vers l'url http://site.X.net:8080

    ps: j'ai rajouté le service web apache car je crois qu'avec uniquement tomcat on ne peut pas faire de redirection d'une url vers une autre url

    Merci d'avance pour votre lecture et votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    J'ai réussi à faire la redirection sur le port de Tomcat en modifiant le fichier httpd.conf:

    Au lieu de ce que j'avais avant j'ai mis ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ProxyRequests Off
     
    <Proxy *>
     
    Order deny,allow
    Allow from all
     
    </Proxy>
     
    ProxyPass / http://127.0.0.1:8081/
    ProxyPassReverse / http://127.0.0.1:8081/
    Et j'ai remis par défaut le fichier server.xml de tomcat

    Donc la redirection de port fonctionne mais je n'arrive toujours pas à rediriger l'url. Je pense que c'est avec "Redirect permanent" mais ca ne marche pas ce que j'ai mis et je ne trouve pas la bonne syntaxe

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Si on lit la doc de Redirect (ce qui se trouve être utile parfois), on lit cette superbe phrase :
    Citation Envoyé par doc Apache
    The old URL-path is a case-sensitive (%-decoded) path beginning with a slash.
    Jusqu'à preuve du contraire, la chaîne de caractères "http://site.X.net" ne commence pas par /. Donc si tu veux utiliser Redirect, tu ne t'y prends pas de la bonne façon.

    Après, ironie mise à part, je n'ai pas bien compris ce que tu cherchais à faire. Peux-tu lister les différents cas (= les URL) que tu veux tester et ce qu'il doit se passer ? J'ai l'impression qu'il y a des contradictions dans ce que tu demandes.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Bonjour,

    Tout d'abord merci pour votre réponse.
    En faite je veux que les utilisateurs qui tapent l'url "http://tartenpion.toto.net/appli" soit redirigé vers "http://tartenpion.tata.net/appli"

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Voici une partie de mon fichier httpd.conf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    ServerRoot "C:/apache2.2"
    Listen 8080
     
    LoadModule actions_module modules/mod_actions.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule asis_module modules/mod_asis.so
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authz_default_module modules/mod_authz_default.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule autoindex_module modules/mod_autoindex.so
    LoadModule cgi_module modules/mod_cgi.so
    LoadModule deflate_module modules/mod_deflate.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule env_module modules/mod_env.so
    LoadModule headers_module modules/mod_headers.so
    LoadModule include_module modules/mod_include.so
    LoadModule isapi_module modules/mod_isapi.so
    LoadModule logio_module modules/mod_logio.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule mime_module modules/mod_mime.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule setenvif_module modules/mod_setenvif.so
    LoadModule vhost_alias_module modules/mod_vhost_alias.so
     
    <VirtualHost *:8080>
     
    ServerAdmin admin@site.fr
    DocumentRoot "C:/apache2.2/htdocs"
    ServerName site1.A.net
     
    ProxyRequests Off
     
    <Proxy *>
     
    Order deny,allow
    Allow from all
     
    </Proxy>
     
    ProxyPass / http://site1.A.net:8081/
    ProxyPassReverse / http://site1.A.net:8081/
     
    </VirtualHost>
     
    <VirtualHost *:8080>
     
    ServerAdmin admin@site.fr
    DocumentRoot "C:/apache2.2/htdocs"
    ServerName site1.B.net
     
    ProxyRequests Off
     
    <Proxy *>
     
    Order deny,allow
    Allow from all
     
    </Proxy>
     
    ProxyPass / http://site1.A.net:8081/
    ProxyPassReverse / http://site1.A.net:8081/
     
    </VirtualHost>
    Ce que je voudrais:
    Quand l'utilisateur tape http://site1.A.net:8080/ il est redirigé vers http://site1.A.net:8081/ (site tomcat) -> cela fonctionne
    Et quand l'utilisateur tape http://site1.B.net:8080/ il est redirigé vers http://site1.A.net:8080/ (ou directement http://site1.A.net:8081/) -> ca ne fonctionne pas : Message "Internet Explorer cannot display the webpage"

    J'essaye depuis deux jours différentes configuration mais je ne trouve pas ...

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Y a un NameVirtualHost *:8080 quelque part dans ta conf ? S'il n'y en a pas, ajoute la ligne et teste.

    Quand tu parles de redirection, tu voudrais que la redirection soit explicite, i.e. que la barre d'adresse du navigateur change, ou bien il faut que ça affiche toujours le port 8080 ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    En faite je viens de réussir ce que je voulais faire avec un redirect permanent tout simplement. C'était pas un problème de config apache, c'était un souci de dns. Mais je n'ai pas résolu mon problème de base car du coup ce n'est pas ce que je veux faire. J'explique le problème:

    Un client a un certificat ssl qui autorise l'accès à https://site1.a.net (serveur web sous tomcat). Avant, il accédait au serveur web avec un certificat non autorisé via l'url https://site1.b.net, mais en meme temps qu'il a acheté un certificat payant, le nom du site à changer. Et il veux maintenant que les anciens liens https://site1.b.net (qui se trouvent sur des documents, rapports, etc.) soient redirigés vers https://site1.a.net.

    Donc moi ce que j'ai fait, c'est installé un apache pour rajouter une couche web qui redirige l'url https://site1.b.net vers https://site1.a.net.

    Solution que j'ai testé :
    Dans mon apache (en http), j'ai fait un redirect permanent sur le tomcat (en https) -> ca fonctionne mais les utilisateurs doivent taper http://site1.b.net, ce n'est pas bon car les liens sont en https://site1.b.net.

    Est-il possible, notamment avec la fonction "Rewrite", de rediriger le lien https://site1.b.net vers https://site1.a.net en modifiant le http par https par exemple?

    Je sais pas si tu arrives à comprendre mon problème qui est assez complexe ...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Est-il possible de rediriger une urls https://B.net vers http://A.net avec rewrite par exemple ?
    Sinon est-il possible de faire une redirection https://B.net vers https://A.net sous tomcat avant la vérification du certificat ?

    Merci d'avance

  9. #9
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Dans l'absolu oui, c'est possible, mais je ne suis pas sûr que tu prennes le problème par le bon bout. Ton problème est avant tout un problème de certificat : si l'utilisateur a acheté un certificat alors il doit être redirigé sinon, il n'est pas redirigé. Est-ce une bonne description du problème ? Si c'est une bonne description, ton problème consiste avant tout à détecter l'événement "certificat acheté", et ce n'est pas en faisant de l'HTTP simple que tu y arriveras.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Oui c'est la conclusion que je me suis dites aussi (je retombe sur le même problème de certificat avec un apache devant le tomcat) ...
    Le client a bien acheté un certificat lié au site https://A.net mais pas pour le https://B.net. Donc c'est pour cela que ca ne marche pas avec https://B.net. Et il voudrait que ça marche avec ce site aussi.

    Est-il possible de rediriger (ou transformer) https://B.net vers https://A.net avant la vérification du certificat autrement, avec un autre outil? Avec le .htaccess (comme ceci par exemple http://www.isitebuild.com/301-redirect.htm) ou un proxy ?
    Par rapport à ce que j'ai lu, je ne pense pas que ça fonctionne (comme tu dis, j'aurai toujours le problème de certificat) mais je préfère demander au cas où je ne sais pas quelque chose ... ou si un outil permettrais de faire ce changement de nom de site

    Sinon je me suis renseigné pour un certificat ssl multi-sites mais bien sûr, ca double le prix ...

    En tout cas merci beaucoup pour tes réponses

  11. #11
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Aucune idée Sans acheter un autre certificat, le seul truc que je vois c'est rediriger le navigateur de https://B.net vers https://A.net/untruc et de mettre en place un reverse proxy sur https://A.net/untruc vers http://B.net, mais il ne pourra plus y avoir d'accès direct sur https://B.net, ce site servira plus qu'à rediriger sur https://A.net/untruc.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Ok merci, et dans ce cas là, les utilisateurs qui tapent https://B.net sont redirigés vers https://A.net avant la vérification du certificat ?

    Car en faite le client n'est pas autorisé à accéder au site avec des certificat non signé et donc quand ils essayent d'accéder à https://B.net, il ne peut pas car le certificat et lié et autorisé à https://A.net uniquement.

    Sinon sais-tu quand se fait la vérification du certificat ? Si je fais une redirection du site B vers A, vérifie-t-il le certificat avant la redirection ?

  13. #13
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Ben non, justement, je ne sais pas.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Ok, je te dirai comment ça s'est terminé si ça t'intéresse mais on risque de devoir acheter un nouveau certificat ...

    Merci en tout cas pour toute ton aide et bonne soirée

Discussions similaires

  1. Rewrite d'une url statique vers une url statique ?
    Par fatdarron dans le forum Apache
    Réponses: 1
    Dernier message: 15/08/2009, 11h35
  2. Réponses: 0
    Dernier message: 07/06/2009, 12h31
  3. Réponses: 2
    Dernier message: 05/11/2008, 10h38
  4. Réponses: 5
    Dernier message: 22/05/2008, 14h42
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo