J'ai récemment configuré par site Web pour diriger tout le trafic via https. Je l’ai fait en modifiant le fichier vhost pour le montrer.
<VirtualHost *:80>
DocumentRoot "/srv/http/example"
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
Cela fonctionne très bien lorsque je vais à la racine du site, par exemple example.com. Toutefois, lorsque j'essaie d'accéder à un sous-répertoire, j'ai une rupture étrange dans l'URL. Par exemple, si je tape exemple.com/blog, il essaie de rediriger vers https: //example.comblog . Qu'est-ce qui se passe ici?
apache-http-server
ssl
https
stmfunk
la source
la source
Redirect
ligne devientRedirect permanent / https://example.com
(par exemple, sans barre oblique). Avec votre configuration ci-dessus, la redirection fonctionne correctement.RedirectMatch permanent ^/(.*)$ https:/example.com/$1
et aucun n'a fonctionné.Réponses:
J'ai réussi à résoudre le problème en changeant:
à
Cela semble avoir résolu le problème, je suppose qu’à un moment donné Apache a supprimé la barre oblique.
la source
Pour rediriger un site TLS / SSL vers un site non-TLS, voir les détails ci-dessous:
L'ajout d'une barre oblique de fin et son échappement avec une barre oblique inversée rétablit la barre oblique manquante.
J'ai trouvé que mon site particulier avait besoin de la redirection dans les deux hôtes virtuels (*: 80 et *: 443), mais celui TLS ne fonctionnait pas correctement. Les éléments suivants ajoutés aux deux hôtes virtuels ont résolu le problème.
Remarque: la documentation d'Apache montre l'ajout de guillemets autour de tout. Dans mon cas, ce qui précède a bien fonctionné, permettant aux pages de l’URL d’être résolues comme prévu. Source: https://httpd.apache.org/docs/2.4/en/rewrite/avoid.html
Exemples extrapolés à partir de la source:
Redirect "/one/" "http://one.example.com/"
Redirect permanent "/" "http://example.com/"
J'espère que ça aide quelqu'un.
la source