• ベストアンサー

apache の設定 HTTPSをHTTPにリダイレクトする方法

メンテナンス用のソーリーサーバを構築しているのですが、HTTPS(443)のアクセスをHTTP(80)へリダイレクトする方法はないでしょうか?逆はあるようなのですが、、、 ちなみに、httpd.confのLISTENに80と443を並べて書いても、「http://www.domain.com:443」への対応は出来ても「https://www.domain.com」はできませんでした。 誰かご存知の方教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

ちょっと状況が良くつかめないのだが、やはりhttps(443)はVirtualHostで稼動させた方が良いのではないかな。 ところで、理由は何かな? 例えば、メンテページはhttpsでしか繋がらなくしたいならそのまま443のバーチャルホストにのみサイトのロケーションを設定すればよいと思うのだが、どうしても443で受けて同じホストの80にリダイレクトしたければ、リバースプロクシを使ってみてはどうだろうか。 具体的には以下のような設定になる。 Listen 443 <VirtualHost *:443> DocumentRoot ・・・ ProxyPass /mainte http://localhost/maintesite ProxyPassReverse /mainte http://localhost/maintesite ・・・ </VirtualHost> つまり、443で受けて自分自身にHTTP転送を行うのだ。ところで、これだとhttp://www.domain.com/maintesite直打ちでアクセスできてしまう。なのでhttpとhttpsで同じロケーションをドキュメントルートにしておくのとほとんど変わりないのではないかと思う。

greenneko
質問者

お礼

別途方法がわかりました。お忙しい中、ご対応有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • HTTPSにおけるリダイレクト設定に関して

    Apache2.2+mod_sslにてSSL通信環境を構築しました。 DNS設定は「sample.com」も「www.sample.com」も同じサーバIPを指定しております。 「www.sample.com」をコモンネームとした証明書を認証局から取得し、 「https://www.sample.com/」にアクセスする場合は問題はありませんでした。 しかし、「https://sample.com/」にアクセスすると、 IEでは「このWebサイトのセキュリティ証明書には問題があります。」と表示されてしまいます。 この問題を解決しようとリダイレクトの対処も含め、以下の様な対応を行いましたが解決できませんでした。 どの様な対応を行えば、上記問題を解決する事ができるのでしょうか? 「sample.com」についても証明書を発行してもらうしかないのでしょうか? 皆様のお知恵をお借りしたく、何卒よろしくお願い致します。 以下、行った対応 ―――――――――――――――――――――― ■mod_rewrite.soを有効にする。 LoadModule rewrite_module modules/mod_rewrite.so ■httpd.confの末尾に以下を追記する。 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^sample\.com RewriteRule ^/(.*)$ https://www.sample.com/$1 [R=301,L] RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R] </IfModule> ■3.httpd-ssl.confに以下を追記する。 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^sample\.com RewriteRule ^/(.*)$ https://www.sample.com/$1 [R=301,L] </IfModule>

  • ApacheでSorryサーバを作りたい

    どんなURIを指定しても用意したページ(sorry.html)を返すSorryサーバを作りたいのです が上手く出来ません。 例えば、 http://192.168.1.5/aaa.html http://192.168.1.5/cgi-bin/aaa.cgi http://192.168.1.5/aaa/aaa.html のアクセスはすべて、 http://192.168.1.5/sorry.html の内容をクライアントに返したいです。リダイレクトで再要求でも良いです。 【httpd.conf】 1.Redirect permanent /foo http://192.168.1.5/sorry.html 2.ErrorDocument 404 http://192.168.1.5/sorry.html このような設定を入れてみましたが、うまくいっていません。 HTTP 404 -ファイル未検出 となります。 ともかく、httpd.confでSorryサーバの作り方を教えて頂けないでしょうか?

  • apacheでhttpsのアクセスをhttpへリダイレクトさせる方法に

    apacheでhttpsのアクセスをhttpへリダイレクトさせる方法について質問です。 最近勉強でapacheの設定をいじるようになりました。しかし、正規表現も理解しづらく苦労してます。 色々調べるとhttpsからhttpのリダイレクトは見かけるのですが。。 例としては https://www.test.com→http://www.test.com https://www.test.com/→http://www.test.com https://www.test.com/index.html→http://www.test.com を想定しています。 httpd.confに書けばいいですかね? とりあえず一番上のパターンだけやってみました。ただスラ有とindex有の場合の 正規表現がうまいこと理解できてなくてわかりません。 RewriteEngine On RewriteCond %{HTTP_HOST} ^www.test.com(.*) RewriteRule ^(.*)?$ http://www.test.com$1 [L,R] よろしくお願いします。

  • apacheでhttpsによって外部からアクセスさせたい

    windowsserver2008でapache2.2.6を動かしてます。 httpd.confとhttpd-ssl.confを編集して、 LAN内から http://server/index.html https://server/cgi-bin/printenv.pl でアクセスできます。 外部から http://domain.jp/index.html でアクセスできるのですが、 https://domain.jp/cgi-bin/printenv.pl だと404エラーが表示されます。 サーバー上でnetstat -aすると、443はLISTENになってます。 外部からhttpsによるアクセスを可能にするために確認すべきこと、 あるいは、アクセスできる方法をご存じの方教えてください。

  • apacheのバーチャルホストの設定方法

    MacOSX Snow Leopardを使っています。 apacheは2.2.11です。 httpd.confで/http/Virtual.confを読み出して設定しています。 Virtual.conf ------- # #VirtualHost.conf # NameVirtualHost *:80 <VirtualHost *:80> ServerName www.xxxxx.com DocumentRoot /http/www.xxxxx.com </VirtualHost> ------- ※www.xxxxx.comは、正しく設定されています。 の設定をし、httpdを再起動したところ、IPアドレスでアクセスしても、ドメインでアクセスしても、httpコード403になってしまいます。 *httpdで起動時、エラーはでません。 *httpd -tはSyntaxOK *httpd -sは   VirtualHost configuration:   wildcard NameVirtualHosts and _default_ servers:   *:80 is a NameVirtualHost    default server www.xxxxx.com (/http/Virtual.conf:11)    port 80 namevhost www.xxxxx.com (/http/Virtual.conf:11)   Syntax OK です。 virtual.confをすべてコメントアウトしたところしっかりアクセスできました。 よろしくお願いします。

  • HTTPSへの強制リダイレクトについて

    質問です。さくらレンタルサーバで.htaccessで RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] or RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] にしてもリダイレクトループが起きてしまい、強制的にhttpsにする事が出来ません。 例としてドメインを abc.jp として http://abc.jp/ (wwwはなし)で接続した時に httpsに移すという物ですが、さくらレンタルサーバでは、なぜかループしてしまいます。 どうすれば強制化出来るでしょうか。また.htaccess以外にも方法がありましたら お教え下さい。

  • httpd.conf サブドメインのリダイレクト

    RewriteCond %{HTTP_HOST} ^(www.example\.com)(:80)? RewriteRule ^(.*) http://example.com$1 [R=301,L] httpd.confで上記のようにサブドメイン「www」をサブドメインなしにリダイレクトをしています。 これを他のサブドメイン(testやhoge)もサブドメインなしにリダイレクトするにはどうすればよいでしょうか? 正規表現での記述?がチンプンカンプンです。 何故か検索サイトに変なサブドメインが拾われて困ってます。 よろしくお願いします。

  • http → https リダイレクト

    【http://example.com】にアクセスしたら【https://example.com】へリダイレクトしたいのですが、indexファイルが【/var/www/html/index.html】にある場合、どのようにすればよいでしょうか?やり方はhttpd.confにリダイレクト指定をしても.htaccessファイルを用いても何でも結構です。記述方法がよくわからないのです。 ご存知の方、宜しくお願いします。

  • サブドメイン間のリダイレクト設定

    今までのサーバの設定は、ドメインの「www」部分があってもなくてもアクセスできるようになっていました。(例:http://www.domain.com/ と http://domain.com/ のどっちにアクセスしても、同じHTMLファイルが表示される) しかし、これから、SSLを導入することになり、サブドメイン名も同一しなければならなくなりました。 サブドメイン間のリダイレクト設定を行い、例えば、http://domain.com/或いはそのしたのどのページにアクセスしても(URL直打ちで)、自動的にhttp://www.domain.com/ にリダイレクトさせたいです。 これって、可能でしょうか。可能であれば、設定方法を教えて頂ければ幸いです。 どうぞよろしくお願い致します。

  • .htaccess でのリダイレクト

    レンタルサーバーを利用していて、ドメインを追加したのですが、制限がありました。 1、新しいドメイン追加の際、メインのドメインに新しいドメインに紐づいたサブドメインが必須 →xxx.comがメインの場合、yyy.comを追加するとyyy.xxx.comが自動的に追加される 2、サブドメインのディレクトリはメインドメインのディレクトリ内にしか作れない →xxx.com/yyy/、yyy.xxx.com、yyy.comと三通りのアクセス手段がある状態 yyy.comからだけアクセスできるようにしたいのですが、.htaccessの設定がどうも上手くいきません。アドバイスいただけませんでしょうか? 下の記述で、サブドメインからのアクセスは回避できました。 RewriteCond %{HTTP_HOST} ^yyy.xxx.com$ [OR] RewriteCond %{HTTP_HOST} ^www.yyy.xxx.com$ RewriteRule ^.*$ "http\:\/\/www\.xxx\.com\/" [R=301,L] 下の記述を追加で、サブディレクトリへのアクセスを回避しようと試みたのですが、yyy.comからアクセスしてもxxx.comへリダイレクトするようになってしまいます。 RedirectMatch permanent ^/yyy$/ / よろしくお願いいたします。