リクエストをリダイレクトするにはどうすればいいですか?https://blog.example.comにhttps://example.com/blog?
Apacheのドキュメントを読んで、書き換えモジュールを使用しない場合について、簡単なリダイレクトを試してみました。
Redirect https://blog.example.com https://example.com/blog
しかし私が訪問するとhttps://blog.example.com、リダイレクトされません。証明書のエラーのみが表示されます。HTTPS サブドメインをリダイレクトする可能性はありますか? 次のようにすると、HTTP で正常に動作します。
<VirtualHost *:80>
ServerName blog.example.com
Redirect / https://example.com/blog/
</VirtualHost>
次のような条件:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$
RewriteRule ^/(.*)$ https://example.com/%1/$1 [R=301,L]
HTTPS ではなく HTTP を使用している場合にのみ機能します...
ありがとう。
答え1
設定はVirtualHost *:80
、つまりhttp
ポートに適用されます。 のポートhttps
は 443 です。その設定を見つけて、そこにもリダイレクトを適用します。
答え2
そのために mod_alias を使用できると思います。
blog.example.com 仮想ホストで:
RedirectMatch (.*)$ / https://example.com/blog/$1
答え3
ブラウザが証明書エラーをフラグ付けすると、トランザクションが中断されます。前にリダイレクトが実行されます。HSTS を使用しない場合は、エラーをクリックしてこれを確認でき、リダイレクトは通常どおり続行されます。エラー自体はいくつかの理由で発生する可能性があり、ブラウザには該当する理由が表示されますが、最も可能性が高いのは、証明書が のみに有効であり、 の SAN エントリ(またはワイルドカード)example.com
がないことです。これを修正するには、この追加の名前を含めるように証明書を再生成するか、追加の証明書を取得して、この証明書をサブドメインに提供するようにサーバー構成を調整します。どちらの場合でも、選択した証明書プロバイダー (CA) がサポートできるはずです。blog.example.com
*.example.com