web-dev-qa-db-ja.com

すべて(www).example。(com / net / org)をhttps://example.comにリダイレクトする方法

URL/URIをセットアップするにはどうすればよいですか

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

最終的に対応する:

https://example.com/somepath

解決策(ある場合)には、DNS設定と.htaccessブードゥー教が関係していると思います。しかし、私はそれらがどのように機能するのか本当に理解していません(特に.htaccess)。そのため、何を読むべきかについての具体的な提案も歓迎します。 (はい、グーグルで検索できますが、これはかなり具体的かつ/または難解な質問のようで、解決策を講じることに失敗しました。または、私は愚かかもしれません...)

セットアップ:

ドメインexample.net/.org/.comがすべて同じレジストラに登録されています。レジストラのドメイン設定を介して、example.net.orgをセットアップして(301)をexample.comにリダイレクトします。 ApacheとcPanelを使用する別の共有ホスティング会社でexample.comをホストしています。

現在、いくつかのリダイレクトが機能します:http://(with or without www).example.(net/org) => http://example.com

ただし、http://www.example.comhttp://example.comだけにリダイレクトしません。

トリッキーな部分になりました。 Webホストには「SNIベースのSSL」もあります。したがって、https://exmple.comhttps://www.example.comは両方とも機能しますが、httpsでは、www URLはベースドメイン(https://example.com)にリダイレクトしません。

さらに、https://example.netは、wwwの有無にかかわらず機能しません(接続できません/タイムアウトします)。

要するに、可能であれば、上記のすべての順列を、対応するものになるように構成するにはどうすればよいですか?

https://example.com/somepath

または、答えが実装するために博士論文の完了を必要とする場合、一般的/合理的なセットアップとは何ですか?

3
Self Evident

さらに、https://example.netは、wwwの有無にかかわらず機能しません(接続できません/タイムアウトします)。

.netおよび.orgがHTTPSで機能するには、これらのドメインをカバーするSSL証明書が必要です(.comで既に行っているように)-「SNIベースのSSL」で問題ありません。ただし、これを行うには、おそらく、これらのドメインのDNSが同じサーバー(ホスティングアカウント)を指し、これらのドメインがcPanelアカウント内で「エイリアス」(または「駐車」)ドメインとして構成されている必要があります。すなわち。おそらくexample.comに対して行ったのと同じように、レジストラでこれらのドメインのNAMESERVERSを変更します。 (これは、ドメインレジストラーがこれらのドメインに対してSSLを構成でき、その端から適切なリダイレクトを構成できる場合を除きます-これは非常に疑わしいです。)

その後、cPanel内のこれらの追加ドメイン名をカバーするSSL証明書を発行できます(「Let's Encrypt」?)。

現在、DNSはレジストラによって処理されているため、レジストラからの.netおよび.orgのリダイレクトがあります。 DNSをWebホストに向けると、これらのリダイレクトは自然に機能しなくなります。

そして今、.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]

上記の状態...要求されたホストがnotexample.com(正規ホスト)であるか、要求がHTTPS(希望するスキーム)でない場合、https://example.com/somepathにリダイレクトします。

上記は302(一時)リダイレクトであることに注意してください。これが正常に機能していることを確認した場合にのみ、これを301(永続)に変更します。 301はブラウザによって(デフォルトで)ハードキャッシュされるため、テストに問題が生じる可能性があります。

2
MrWhite