Redirection Apache2

Résolu
Bruce Willix Messages postés 11966 Date d'inscription   Statut Contributeur Dernière intervention   -  
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je cherche a avoir pour mon site le comportement suivant :
https://www.mackage.com/eu/en/craftsmanship -> https://www.mackage.com/eu/en/craftsmanship
https://www.mackage.com/eu/en/craftsmanship -> https://www.mackage.com/eu/en/craftsmanship
https://www.mackage.com/eu/en/craftsmanship -> https://www.mackage.com/eu/en/craftsmanship

Les deux première redirections fonctionnent bien, mais pas moyen de faire fonctionner la troisième.
Est-ce que quelqu'un peut m'aider ? Voilà mes fichiers de config Apache pour HTTP :

<VirtualHost *:80>

RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) https://www.exemple.com$1 [R=301,L]

</VirtualHost>


et pour HTTPS

<VirtualHost *:443>
Protocols h2 http/1.1

RequestHeader set X-Forwarded-Proto "https"

# Server identification
ServerName www.exemple.com
#ServerName www.exemple.com
ServerAlias exemple.com
ServerAlias *.exemple.com

# Server Admin
ServerAdmin it@exemple.com
ServerSignature Off

#Enable SSL
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!aNULL:$
Header add Strict-Transport-Security: "max-age=15768000;includeSubdomains"
SSLCompression Off
SSLCertificateFile /path/to/my/certificate/certificate.pem

<proxy>
AddDefaultCharset off
Order deny,allow
Allow from all
</proxy>

# Force www if www is not found in URI
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.exemple.com/$1 [R=301,L]

# Setup Proxy
ProxyRequests Off
ProxyPreserveHost On
ProxyVia full
ProxyTimeout 18000
SetEnv proxy-nokeepalive 1

# Avoid Proxy features for some pages
# ProxyPass "/server-info" !
# ProxyPass "/server-status" !
ProxyPass "/robots.txt" !
ProxyPass "/Pictures" !
ProxyPass "/maintenance" !

# Setup reverse proxy
ProxyPass /longpolling/ http://localhost:8072/longpolling/
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/
ProxyPass / http://127.0.0.1:8069/
ProxyPassReverse / http://127.0.0.1:8069/

</VirtualHost>


J'ai aussi essayé les rewrite suivants:


RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


RewriteCond %{HTTP_HOST} ^exemple\.com$
RewriteRule ^(.*)$ https://www.exemple.com$1 [R=301,L]


Enfin, j'ai aussi tenté de créer un virtual host qui ne gérerait que la redirection

<VirtualHost *:443>

ServerName exemple.com
Redirect permanent / https://www.mackage.com/eu/en/craftsmanship

</VirtualHost>


Merci beaucoup pour votre aide !

Bruce

1 réponse

mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 
Bonjour,

Si tu as l'intention d'utiliser Let’s Encrypt à terme, je crois que me souvenir que lorsque tu installe le paquet
certbot
, il s'occupe d'adapter ta configuration apache pour faire ces redirections.

Et sinon, voici comment procéder.

Bonne chance
0
Bruce Willix Messages postés 11966 Date d'inscription   Statut Contributeur Dernière intervention   2 594
 
Bonjour,

Merci pour ta réponse, mais je ne saisis pas très bien : le lien mène sur un thread expliquant comment rediriger https vers http (ce qui est idiot soit dit en passant). Quant à Let's encrypt on ne l'utilise pas pour le moment - j'ai un certificat émis par Comodo.

Ceci dit, j'ai résolu mon problème en utilisant

RewriteCond %{HTTP_HOST} ^exemple\.com$
RewriteRule ^(.*)$ https://www.exemple.com$1 [R=301,L]


Plutot que

Redirect permanent / https://www.mackage.com/eu/en/craftsmanship


dans le virtual host dédié au ServerName exemple.com

Mon problème est donc résolu.

Merci !
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 
Merci pour ton retour.

En fait, j'avais concentré ma réponse sur la 2e redirection que tu évoquais, mais il est vrai que ta question portait surtout sur la 3e.

Bonne continuation :-)
0