Протокол SSL редирект на хост вызывает URL-адрес, чтобы сломать

Я недавно настроил сайт, чтобы направлять весь трафик через https. Я сделал это, изменив файл vhost, чтобы показать это

<VirtualHost *:80>
    DocumentRoot "/srv/http/example"
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost> 

Это прекрасно работает, когда я иду в корень сайта т. е. example.com, однако, когда я пытаюсь перейти в подкаталог, я получаю странный перерыв в url. Например, если я набираю example.com/blog он пытается перенаправить на https://example.comblog. Что здесь вообще происходит?

5
задан stmfunk
источник

2 ответов

мне удалось решить проблему путем изменения:

https://example.com/

до

https://example.com\/

это, кажется, решило проблему, я предполагаю, что в какой-то момент Apache снял косую черту.

4
отвечен stmfunk 2018-03-22 01:24:34
источник

для перенаправления сайта TLS / SSL на сайт, отличный от TLS, см. подробности ниже:

добавлять косую черту, и избежать обратной косой чертой восстанавливает недостающий Слэш.

я обнаружила, что мой сайт нужен редирект в обоих виртуальных хостов (*:80 и *:443) но СС не работал должным образом. Следующее добавлено к обоим виртуальным узлам устранена проблема.

Redirect permanent "/" http://example.com\/  

Примечание: документация apache показывает добавление кавычек вокруг всего. В мой случай выше работал отлично, позволяя страницам в URL разрешаться так, как ожидалось. Источник: https://httpd.apache.org/docs/2.4/en/rewrite/avoid.html

примеры экстраполированы из источника:

Redirect "/one/" "http://one.example.com/"

Redirect permanent "/" "http://example.com/"

надеюсь, это кому-то поможет.

0
отвечен semtex41 2017-06-26 17:22:04
источник

Другие вопросы apache-http-server https ssl