Принудительно использовать SSL + www + подкаталог с помощью .htaccess - PullRequest
0 голосов
/ 27 марта 2020

У меня есть следующие домены:

http://example.net    -> https://www.example.com/
http://example.org    -> https://www.example.com/
http://example.com    -> https://www.example.com/
http://theexample.com -> https://www.example.com/

Я заблудился, пытаясь найти способ принудительно перенаправить все эти домены на один домен, который использует www*1005* и https , включая все подкаталоги. Основной домен - example.com , и мне нужно перенаправить его, включая такие подкаталоги, как:

http://example.net/blog     -> https://www.example.com/blog
http://www.example.org/blog -> https://www.example.com/blog
https://example.com/blog    -> https://www.example.com/blog
http://theexample.com/blog  -> https://www.example.com/blog

https://www и домен example.com является обязательным для всех подкаталогов.

Заранее благодарю за помощь

1 Ответ

1 голос
/ 27 марта 2020

Вместо того, чтобы проверять имена хостов для перенаправления, вы можете просто проверить, что схема + имя хоста не является каноническим, а затем перенаправить на него. Итак, если запрос не для https://www.example.com/..., то перенаправить (копировать URL-путь).

Например:

RewriteEngine On

RewriteCond %{HTTPS} =off [OR]
RewriteCond %{HTTP_HOST} !=www.example.com
RewriteRule (.*) https://www.example.com/$1 [R=302,L]

Вышеуказанные состояния .. для всех запросов, где HTTPS равен off или нет www.example.com, затем перенаправьте на https://www.example.com/<URL-path>. $1 - это обратная ссылка на подгруппу захвата в шаблоне RewriteRule (ie. URL-путь). Любая строка запроса также копируется по умолчанию.

Префикс = в CondPattern делает это точным совпадением строки, а не регулярным выражением. И префикс ! отменяет регулярное выражение (ie. Делает не совпадение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...