• 締切済み

ドメインに:443を付けるとBad Requestとなる事を回避できませんか?

現在、以下のようなURLで証明書を取得し、サイトを運営しております。 http://mydomain.example.jp/ https://mydomain.example.jp/ VirtualHostで動かしている関係上、 http://mydomain.example.jp:443/ というリクエストが来ると「Bad Request Error 400」とブラウザに表示されます。 何らかの方法で、これを表示させずに本来のページにリダイレクトするなどの方法はございませんでしょうか? よろしくお願いいたします。 環境:CentOS4.5 Apache2

みんなの回答

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.4

No.3です。 >そのままリダイレクト、という形にはなってくれないようです。 URL書いてもリダイレクトされないんですね。てっきりリダイレクトしてくれるものと思ってました。 >もしやり方に間違いがあれば、ご指摘ただ蹴れば幸いです。 ならば、リダイレクト用のHTML(metaタグのrefreshを利用したり、JavaScriptで飛ばすなど)を作って、それを指定してあげればいいんじゃないでしょうか?

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

ErrorDocumentディレクティブでエラーコードが400の時のリダイレクト先を指定してみてはどうでしょう?

参考URL:
http://httpd.apache.org/docs/2.0/mod/core.html#errordocument
bunch
質問者

補足

httpd.confに記述する形で試してみました。 ErrorDocument 400 http://example.jp/ すると Found The document has moved here. となり、[here]にその指定した物がリンクされます。 そのままリダイレクト、という形にはなってくれないようです。もしやり方に間違いがあれば、ご指摘ただ蹴れば幸いです。

回答No.2

#1です。補足拝見しました。 http://mydomain.example.jp:443/https://mydomain.example.jpへ変換するだけなら、 httpd.confの中で、 <VirtualHost_default_:443> Redirect / https://mydomain.example.jp/ </VirtualHost> というような記述をすることで実現できそうです。 ただ、検索エンジンからのリクエストというところが気にかかります。ホームページの内容がわかりませんのでなんともいえませんが、 暗号化通信をするページへ検索エンジンからのダイレクトなアクセスを受け入れるということですよね。 内容やセキュリティ的に問題が無いかどうか検討して実施されることをお勧めします。 参考にしてください。

bunch
質問者

お礼

結果的には、なぜかうまくいきません。 ドメインのみ置換してそのまま記述した場合、 /etc/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: Syntax error on line 1057 of /etc/httpd/conf/httpd.conf: Expected </VirtualHost_default_:443> but saw </VirtualHost> となってしまいます。 _default_ではなく<VirtualHost*:443>に変更したところ、 Expected </VirtualHost*:443> but saw </VirtualHost> というエラーが起き、起動しません。 次に、以下のページで解説されていた、NameVirtualHostと併記する形を取りました。 http://pascal.orz.cn/muse/pascal/336.html;jsessionid=E47004ADD8B6C1AA5D39F3039FA463A1 Invalid command 'NameVirtualHost*:443', perhaps mis-spelled or defined by a module not included in the server configuration となり、立ち上がりません。 NameVirtualHost *:443 <VirtualHost*:443> Redirect / https://example.jp </VirtualHost> と記述したところやっと立ち上がりました。が、 http://mydomain.example.jp:443/​にアクセスしても以前と同じ状態で、 ​https://mydomain.example.jpjpへ転送されません。何かアドバイスいただけませんでしょうか、よろしくお願いいたします。

回答No.1

バーチャルホストということですが、質問者様が管理運営されているサーバでしょうか。 レンタルサーバの場合は詳細変更は難しいかもしれません。 まず443番ポートを閉じている理由はなんでしょうか? 質問者様の自サーバであればセキュアポートを開ければ済むわけですが なんらかの理由で閉じているのであれば443ポートをポートフォワーディンングしてリダイレクトする方法が考えられます・・・。 とここまで書いたのですが、 >​http://mydomain.example.jp:443/ だと確かに正規のリクエスト要求ではないように思えます。 そのリクエストは正常なリクエストなのでしょうか? 補足していただければもう少しマシな回答ができると思います。 本来のページというのがどのページを指しているのかもあわせて補足していただけると助かります。

bunch
質問者

補足

はい、私が管理しているので、自由に設定を変えることが出来ます。 httpsでの接続の時はPort443でSSL暗号化通信をしているので、閉じている事はありません。 Port443には暗号化通信ではない生の通信は無いとApacheは考えているためにBad Requestとなるのではないか、と考えております。 http://mydomain.example.jp:443/ というようなアクセスは想定していないのですが、検索エンジンからそのようなリクエストが来てしまいます。その場合には https://mydomain.example.jp に飛ばしたいのですが、どのような設定をすればよろしいでしょうか。 お手数をお掛けしますが、アドバイスお願いいたします。

関連するQ&A