Apache redirection d'un URL vers un autre

Apache redirection d'un URL vers un autre - HTML/CSS - Programmation

Marsh Posté le 05-07-2018 à 21:58:26    

Bonjour,
 
Je vous explique mon problème. J'ai un serveur Apache2 accessible en local et depuis Internet. Lorsque j'entre mon nom DNS (par exemple: www.toto.fr) je suis redirigé vers ma page Apache par défaut que tout le monde connais ( Apache2 Debian Default Page ).
Le truc c'est que le service que j'héberge est accessible par l'URL www.toto.fr/tata
Je voudrais donc que lorsque je marque www.toto.fr mon serveur automatiquement de façons transparente me redirige vers www.toto.fr/tata
Je tiens à dire que c'est sous du HTTP mais je voudrais bien aussi la manipulation à faire pour que ce soit opérationnel pour du HTTPS que je mettrais en place plus tard avec un certificat auto-signé.
 
J'ai utilisé la formule: RedirectMatch ^/$ /tata/
Mais je ne sais pas vraiment où placer cette formule dans quel fichier .conf ? Apache2.conf qui est dans /etc/apache2 ?
 
J'ai vraiment besoin d'aide :P

Reply

Marsh Posté le 05-07-2018 à 21:58:26   

Reply

Marsh Posté le 06-07-2018 à 10:49:18    

La redirection de la racine c'est ^$ (sans le slash) je crois.
Moi je met mes redirections dans un .htaccess à la racine du serveur, mais ça doit être plus optimisé de le mettre dans le .conf de l’hébergement car il chargé dans la mémoire d'Apache au lieu d'être lut à chaque requête...


---------------
D3
Reply

Marsh Posté le 06-07-2018 à 10:54:40    

mechkurt a écrit :

La redirection de la racine c'est ^$ (sans le slash) je crois.
Moi je met mes redirections dans un .htaccess à la racine du serveur, mais ça doit être plus optimisé de le mettre dans le .conf de l’hébergement car il chargé dans la mémoire d'Apache au lieu d'être lut à chaque requête...


 
Mais comment je peux savoir le fichier qu'Apache charge ? Car donc a priori je devrais mettre cette formule dans le fichier apache2.conf ?

Reply

Marsh Posté le 06-07-2018 à 11:48:40    

Bonjour,
 
Il te faut un vhost: https://httpd.apache.org/docs/2.2/f [...] mples.html
 

Code :
  1. <VirtualHost *:80>
  2. DocumentRoot /www/example.org
  3. ServerName www.example2.org
  4. # Autres directives ici
  5. </VirtualHost>

Reply

Marsh Posté le 06-07-2018 à 14:39:00    

J'ai déjà un vhost en place.
J'ai donc dans ce vhost ajouté la ligne suivante qui fonctionne a moitié:
Redirect "/" "/tata/"
 
Le problème c'est que lorsque maintenant je vais sur mon site www.toto.fr je suis censé être redirigé vers www.toto.fr/tata, mais ce qu'il se passe c'est que je suis redirigé vers www.toto.fr/tata/tata/tata à l'infini.
C'est-à-dire que /tata est rajouté à l'infini à l'URL une idée ?


Message édité par Snoobz le 06-07-2018 à 14:39:53
Reply

Marsh Posté le 06-07-2018 à 15:02:00    

Hum, essaye ca

Code :
  1. RewriteEngine on
  2. RewriteRule ^/$ /tata

Reply

Marsh Posté le 06-07-2018 à 15:08:56    

dede_sav a écrit :

Hum, essaye ca

Code :
  1. RewriteEngine on
  2. RewriteRule ^/$ /tata



 
Même problème. L'url continue à l'infini et ne s'arrête pas à /tata tout court, mais rajoute /tata à l'infini. Je sais pas si ça a de l'importance mais entre temps ou j'ai posté ce topic, tout se déroule en HTTPS et plus en HTTP. Donc je veux faire une redirection de https://www.toto.fr/ vers https://www.toto.fr/tata
Et je dois aussi enlever le / dans ^/$ si je le laisse rien ne fonctionne.

Reply

Marsh Posté le 06-07-2018 à 19:21:11    

Bonjour,

 

Si je comprends bien, tu as en local :
www/

 

Et tu voudrais que www.toto.fr redirige vers www.toto.fr/tata/ et que ce dernier pointe vers www/ ?
Cela me paraît compliqué.

 

Par contre faire en sorte que www.toto.fr redirige vers www.toto.fr/tata/ et que ce dernier pointe vers www/tata/ c'est plus simple car il suffit en effet de créer une rewrite rule :

Code :
  1. RewriteEngine on
  2. RewriteRule ^$ /tata
 

Ceci fonctionne très bien chez moi, quelle est ta config de virtual-host ?

Message cité 1 fois
Message édité par MaybeEijOrNot le 06-07-2018 à 19:21:46

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 06-07-2018 à 20:08:45    

MaybeEijOrNot a écrit :

Bonjour,
 
Si je comprends bien, tu as en local :
www/
 
Et tu voudrais que www.toto.fr redirige vers www.toto.fr/tata/ et que ce dernier pointe vers www/ ?
Cela me paraît compliqué.
 
Par contre faire en sorte que www.toto.fr redirige vers www.toto.fr/tata/ et que ce dernier pointe vers www/tata/ c'est plus simple car il suffit en effet de créer une rewrite rule :

Code :
  1. RewriteEngine on
  2. RewriteRule ^$ /tata


 
Ceci fonctionne très bien chez moi, quelle est ta config de virtual-host ?


 
Je m'explique.
Mon dossier pour l'accès à /tata se trouve physiquement dans /var/www/html/toto/
Dans ce dossier toto il y a tous les fichiers nécessaires pour l'accès à mon site sous le nom www.toto.fr/tata (avec les DATA de stockées etc... on verra à la rigueur plus tard pour déplacer tout ça de place pour des raisons de sécurités.)
Lorsque j'accède à www.toto.fr je tombe sur la page par défaut d'apache2 (que tout le monde connais), ce que je veux moi c'est lorsqu'on marque www.toto.fr/ on soit rediriger vers www.toto.fr/tata donc vers mon /var/www/html/toto
Sachant que lorsque l'on accède à www.toto.fr on arrive physiquement vers /var/www/html où se trouve un fichier index.html qui est bien entendu chargé par défaut lorsque l'on accède à la page par défaut de apache (donc encore une fois à savoir www.toto.fr)

Reply

Marsh Posté le 06-07-2018 à 22:08:23    

Problème résolu !!
J'ai du utilisé la formule: RedirectMatch ^/$ /tata/
 
La redirection fonctionne sans problème et surtout je n'ai plus le soucis des répétitions à l'infini de l'URL.
C'était bien la formule de départ que j'avais utilisé qui été la bonne, je ne sais cependant pas pourquoi avant elle n'avait pas fonctionné...


Message édité par Snoobz le 06-07-2018 à 22:09:17
Reply

Marsh Posté le 06-07-2018 à 22:08:23   

Reply

Marsh Posté le 06-07-2018 à 22:26:57    

Dans le VirtualHost :
1- créer l'alias : Alias "/tata" "/var/www/html/toto"
2- créer la redirection : RedirectMatch "^/$" "/tata"
 
Cela fonctionne chez moi, on redirige l'utilisateur qui va sur www.toto.fr vers l'alias /tata qui pointe sur /var/www/html/toto.
 
 
EDIT : le temps que je fasse les tests chez moi, tu t'es répondu.
Oui j'ai galéré, mon Firefox avait mis en cache une règle du .htaccess que j'avais créé avant. :o

Message cité 1 fois
Message édité par MaybeEijOrNot le 06-07-2018 à 22:29:59

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 06-07-2018 à 23:08:04    

MaybeEijOrNot a écrit :

Dans le VirtualHost :
1- créer l'alias : Alias "/tata" "/var/www/html/toto"
2- créer la redirection : RedirectMatch "^/$" "/tata"
 
Cela fonctionne chez moi, on redirige l'utilisateur qui va sur www.toto.fr vers l'alias /tata qui pointe sur /var/www/html/toto.
 
 
EDIT : le temps que je fasse les tests chez moi, tu t'es répondu.
Oui j'ai galéré, mon Firefox avait mis en cache une règle du .htaccess que j'avais créé avant. :o


 
En tout cas merci de ton aide !!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed