Как перенаправить все (www) .example. (Com /net /org) на https://example.com

Как настроить любой URL /URI для

http(s)://(www).example.(com/net/org)/somepath

, чтобы закончить с соответствующим:

https://example.com/somepath

Я предполагаю, что решение (если оно есть) будет включать настройки DNS и .htaccess voodoo. Но я не совсем понимаю, как это работает (особенно .htaccess). Таким образом, некоторые конкретные предложения о том, что читать, также будут оценены. (Да, я могу google, но это, кажется, довольно конкретный и /или эзотерический вопрос, и я не увенчался успехом в решении. Или я мог бы быть глупым ...)

Настройка:

У меня есть домены example.net /.org /.com все зарегистрированы у того же регистратора. Через настройки домена регистратора у меня есть example.net и .org для перенаправления (301) на example.com. У меня есть example.com, размещенный в отдельной общедоступной хостинговой компании, которая использует Apache & Cpanel.

В настоящее время работают некоторые перенаправления: http://(with or without www).example.(net/org) => http://example.com

Однако http://www.example.com не перенаправляется только на http://example.com.

Теперь для сложной части. Веб-хост также имеет «SSL на основе SNI». Итак, https://exmple.com и https://www.example.com оба работают, но с https URL-адрес www не перенаправляется на базовый домен (https://example.com).

Кроме того, https://example.net тоже не работает, с или без www (не будет подключаться /отключается).

Итак, короче (слишком поздно?), если это возможно, как мне настроить все перестановки выше, чтобы закончиться с соответствующим:

https://example.com/somepath

Или, если ответ потребует завершения докторской диссертации для реализации, что является обычной /разумной настройкой?

3 голоса | спросил Self Evident 1 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 01 Sep 2017 23:30:13 +0300 2017, 23:30:13

1 ответ


2
  

Кроме того, https://example.net тоже не работает, с или без www (не будет подключаться /отключается).

Для .net и .org для работайте с HTTPS, вам нужно иметь сертификаты SSL, которые охватывают эти домены (как вы уже делали для .com) - «SSL на основе SNI» хорошо. Однако для этого вам, вероятно, потребуется DNS для этих доменов, указывающих на один и тот же сервер (ваша учетная запись хостинга), и эти домены, настроенные как «Псевдоним» (или «Припаркованные») домены в вашей учетной записи cPanel. то есть. Измените NAMESERVERS в этих доменах у своего регистратора, то же, что вы, вероятно, сделали для example.com. (То есть, если ваш регистратор домена не может настроить SSL для этих доменов, и вы можете настроить соответствующее перенаправление с этой целью, что я очень сомневаюсь.)

Затем вы можете выдавать («Let's Encrypt»?) SSL-сертификаты, которые охватывают эти дополнительные доменные имена в cPanel.

В настоящее время у вас есть перенаправления для .net и .org от вашего регистратора, поскольку DNS в настоящее время обрабатывается вашим регистратором. Когда вы укажете DNS на свой веб-хост, эти перенаправления, естественно, перестанут работать.

И теперь для .htaccess "voodoo" перенаправить все на ваш канонический хост (example.com) и HTTPS. На самом деле, это действительно не так уж плохо, поскольку перенаправления идут.

В верхней части файла .htaccess в корневом каталоге документа добавьте следующие директивы mod_rewrite:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^example\.com$ [OR]
RewriteCond %{HTTPS} !on
RewriteRule ^ https://example.com%{REQUEST_URI} [R=302,L]

Вышеуказанные состояния ... если запрошенный хост не example.com (канонический хост) или запрос не HTTPS (желаемая схема), а затем перенаправляется на https://example.com/somepath.

Обратите внимание, что вышесказанное представляет собой 302 (временную) переадресацию. Измените это на 301 (постоянный) только тогда, когда вы подтвердили, что он работает нормально. 301s кэшируются браузером (по умолчанию), поэтому могут затруднить тестирование.

ответил MrWhite 2 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 02 Sep 2017 00:31:55 +0300 2017, 00:31:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132