Redirection Apache2
Résolu
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 :
et pour HTTPS
J'ai aussi essayé les rewrite suivants:
Enfin, j'ai aussi tenté de créer un virtual host qui ne gérerait que la redirection
Merci beaucoup pour votre aide !
Bruce
Durant un moment, il ne se produisit rien.
Puis, au bout d'une seconde à peu près, il continua de ne rien se produire. (D. Adams)
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
Durant un moment, il ne se produisit rien.
Puis, au bout d'une seconde à peu près, il continua de ne rien se produire. (D. Adams)
1 réponse
-
Bonjour,
Si tu as l'intention d'utiliser Let’s Encrypt à terme, je crois que me souvenir que lorsque tu installe le paquetcertbot
, il s'occupe d'adapter ta configuration apache pour faire ces redirections.
Et sinon, voici comment procéder.
Bonne chance-
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 ! -
-