au端末でのHTTPS⇒HTTP時の挙動について

このQ&Aのポイント
  • LAMP環境で携帯端末向けWEBシステムの開発をしております。HTTPS⇒HTTPの挙動について教えてください。
  • フォームのページへアクセスした場合は意図した動作をするのですが、フォームのページからその他の非SSLページへリンクを辿った際にau端末のみ403エラーが発生します。
  • ポート番号がついていることが原因かと思われますが、適切な対応方法を教えてください。
回答を見る
  • ベストアンサー

au端末でのHTTPS⇒HTTP時の挙動について

LAMP環境で携帯端末向けWEBシステムの開発をしております。 標題の件についてご教示いただけましたら幸いです。 ユーザが個人情報を登録するフォームを備えたサイトになっていまして、 登録フォームのページが https://www.hogehoge.jp/form.php それ以外のページが http://www.hogehoge.jp/hoge.php となっています。 フォームのページにアクセスした場合にHTTPSにRewriteするため、.htaccessファイルに 以下のように記述いたしました。 ━━━━━━━━━━━━━━━━━━━━ RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} ^/form\.php(.*)$ RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteCond %{REQUEST_URI} !(^/form\.php(.*)$) RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] ━━━━━━━━━━━━━━━━━━━━ フォームのページへアクセスした場合は意図した動作(http://www.hogehoge.jp/form.php にアクセスするとhttps://www.hogehoge.jp/form.phpにRewriteされる) をするのですが、フォームのページからその他の非SSLページへリンクを辿った際に au端末のみ「リクエストされたページは表示できません」(403?)エラーとなってしまいます。 メニューからURLを確認すると、au端末のみ http://www.hogehoge.jp:443/ とポート番号がついていましたのでこのあたりが原因かと思われるのですが、 良い対応方法をご存知の方、おられましたらよろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

.htaccessファイルの%{HTTP_HOST}の部分を、www.hogehoge.jpに変えてみてはいかがでしょうか。

参考URL:
http://blog.thrive-on.com/mobile/357.html
blanc210
質問者

お礼

回答ありがとうございます。 試してみたところ、問題なく動作するようになりました。 とても困っておりましたので、大変助かりました。

関連するQ&A

  • httpsでmod_rewriteができない

    はじめまして。 Linux環境で、apacheのhttp.confにmod_rewriteを記載し、httpsとhttpを切り替えたいと思っています。 httpd.confに以下のように記述しています。 <IfModule mod_rewrite.c> RewriteEngine on  #(1)httpで/aaaa/bbbbにアクセスされたときにhttps://~に変えたい RewriteCond %{REQUEST_URI} ^/aaaa/bbbb RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R]  #(2)httpsで/cccc/ddddにアクセスされたときにhttp://~に変えたい RewriteCond %{REQUEST_URI} ^/cccc/dddd RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R] </IfModule> 上記(1)のhttpでのアクセス時には、mod_rewriteが効いてhttpsへ切り替えられるのですが、 上記(2)のhttpsでのアクセス時には、mod_rewriteが効いていないようでhttpへ切り替えられません。 rewriteログを見てみると、当サイトへhttpでアクセスした場合にはログが出力されますが、 httpsでアクセスした場合には出力されません。 そもそもhttpsでのアクセスの場合にhttpd.confのmod_rewriteが効いていないようです。 ですが、これに対しどこを調査すべきかが分かっていません。 SSLの設定自体は出来ていると思っていて、 https://xxxx.jpのようにアクセスするとちゃんとページが表示されます。 どの当たりに問題がありそうでしょうか? 解析のヒントを頂けたらと思います。 宜しくお願い致します。

  • 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以外にも方法がありましたら お教え下さい。

  • htaccessによる端末ごとによる振り分け

    htaccessによる振り分けに関しまして、 PC:/ スマートフォン:/sp/ モバイル:/m/ 端末ごとに振り分けを行いたいです。 ■PC では、/sp/フォルダ、/m/フォルダにアクセスしても、 URLから、各フォルダが除かれ、PCファイルが読み込まれます。 ■スマートフォンでは、/sp/フォルダが入っていないときは、 問題なく、URLに/sp/が加わり、スマートフォンサイトが読み込まれます。 ですが、http://○○.com/m/index.php等でアクセスを行うと、 http://○○.com/sp/m/index.phpのようなURLになります。 ※これは、http://○○.com/sp/index.phpへアクセスしてほしいです。 ■モバイルでは、/m/フォルダが入っていないときは、 問題なく、URLに/m/が加わり、モバイルサイトが読み込まれます。 ですが、http://○○.com/sp/index.php等でアクセスを行うと、 http://○○.com/m/sp/index.phpのようなURLになります。 ※これは、http://○○.com/m/index.phpへアクセスしてほしいです。 ■モバイル・スマートフォンのリダイレクトに関しまして、 改善するためのご意見をお願い致します。 よろしくお願い致します。 ■htaccessの中身です。 RewriteEngine on #スマートフォン RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^(.*)$ sp/$1 [R] #RewriteRule ^(.*)$ sp/ [R] RewriteBase / #モバイル RewriteCond %{REQUEST_URI} !/m/ RewriteCond %{HTTP_USER_AGENT} (DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^(.*)$ m/$1 [R] #RewriteRule ^(.*)$ m/ [R] RewriteBase / #PC RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^sp/(.*)$ $1 [R] #RewriteRule ^sp/(.*)$ / [R] RewriteBase / #PC RewriteCond %{REQUEST_URI} /m/ RewriteCond %{HTTP_USER_AGENT} !(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^m/(.*)$ $1 [R] #RewriteRule ^m/(.*)$ / [R] RewriteBase /

  • httpからhttpsへのリダイレクト方法

    すいません、よくわかりませんので教えて下さい。.htaccessに記述してhttpにアクセス来たものをhttpsへリダイレクトしたいです。 今の状況は下記です。 AddHandler application/x-httpd-php53 .php RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(sanetsu.com) RewriteCond %{REQUEST_URI} !^/(sanetsu.com)/ RewriteRule ^(.*)$ http://www.sanetsu.com/$1 [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(www.burikama.com) RewriteCond %{REQUEST_URI} !^/(www.burikama.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(burikama.com) RewriteCond %{REQUEST_URI} !^/(burikama.com)/ RewriteRule ^(.*)$ http://www.burikama.com/$1 [L] # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress すいません、上記の記述をどのように変更したらhttpsへリダイレクトさせることができますでしょうか?前任のweb担当の方と連絡が付かないので教えていただけたらありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • SSLのリダイレクトについて

    sslのリダイレクトの作業を急いでやらないといけないのですが、sslに関しては全くの初心者なので調べながらいろいろやってみましたがどうしてもうまくいかず困っています。。 Wordpressでサイトを作成していてドメイン直下の.htaccessにリダイレクトの記述をしています。 サーバーはGMOのiCLUSTAで、sslはジオトラストです。 http://○○○.jp/ にアクセスした場合に、 https://ssl.○○○.jp/ へリダイレクトされるようにしたいです。 .htaccessの記述内容です # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress RewriteEngine on RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://ssl.○○○.jp/$1 [R=301,L] この記述をしていますが、リダイレクトされたりされなかったりの不安定な状態です。 されないことの方が多いのでどの条件で動いているのかがわかりません。 RewriteCond %{HTTPS} on を、 RewriteCond %{HTTPS} off にするとリダイレクトされますが、処理がループされていますという表示が出てしまいます。 どのような記述をすればうまくいくのでしょうか?

  • httpへのアクセスをhttpsに変えたい

    書き込みさせていただきます。 サイトのフォーム部分のみ、httpではなくhttpsで接続したいです。 .htaccessに下記を記述し、フォームがあるディレクトリにアップロードしました。 ※下記サイトを参考にしました。 http://d.hatena.ne.jp/mrgoofy33/20100914/1284414817 RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] しかし、アップロードすると https://www.xxxxxx.jp/form/を開けません。 サーバ"www.xxxxxx.jp"にセキュリティ保護された接続を確立できません。 と出て、表示されません。 何か記述は間違っていますか? よければ、アドバイスお願いいたします。

  • SuiteXでの.haccessの設置の仕方

    suiteXでマルチドメインで運用をしたいのですが、www.aaa.jpとaaa.jpのドメインがあり、aaa.jpへアクセスされるとwww.aaa.jpへアクセルするようにしたいと思っています。 suiteX内のマルチドメイン設定ツールで下記のように設定しました。 # This file is made by RewriteRule Tool. # Enable RewriteEngine. RewriteEngine On # 404 Error for Multidomain Directories. RewriteCond %{HTTP_HOST} ^centia.jp$ RewriteCond %{REQUEST_URI} ^/(www.aaa.jp|aaa.jp)/ RewriteRule ^(.*)$ /$1 [L,R=404] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(www.aaa.jp|aaa.jp) RewriteCond %{REQUEST_URI} !^/(www.aaa.jp|aaa.jp)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] .htaccessについては全く分からない者ですいません。 aaa.jpにアクセスするとwww.aaa.jpへアクセスするにはどのように記述したらよいですか?

  • mod_rewriteルールの正しさについて

    お世話になります。 mod_rewriteについて勉強を始め、動的ページを擬似静的ページに変換するルールを記述しようとしているのですが、一向に上手くいきません。。 どなたかアドバイスいただけませんでしょうか? 以下が、実際に組んでいるルールです。 -------------------------------------- RewriteEngine on RewriteRule ^/m/plan/detail/([0-9]+).php$ /m/plan/detail.php?gdid=$1 [L] -------------------------------------- として、例えば http://www.hoge.jp/m/plan/detail/1000.php にアクセスがあった場合に、 http://www.hoge.jp/m/plan/detail.php?gdid=1000 の中身を表示させたいのですが、 「ファイルがありません」の404エラーが返ってきます。。 ちなみに、rewriteモジュールが正しく動作することは確認出来ており、 例えば、 -------------------------------------- RewriteCond %{HTTP_USER_AGENT} (DoCoMo|Vodafone|J-PHONE|SoftBank|UP\.Browser|KDDI|Googlebot-Mobile|Y!J|Nokia) RewriteCond %{REQUEST_URI} !^/m/ RewriteRule ^(.*)\.php$ /m/$1.php [L] -------------------------------------- のようなモバイルサイトとPCサイトのURL正規化ルールは問題なく動きます。 お手数ですが、どなたかアドバイスいただけますと幸いです。

  • Rewriteルールの書き方

    お世話になります。 mod_rewriteについて勉強を始め、動的ページを擬似静的ページに変換するルールを記述しようとしているのですが、一向に上手くいきません。。 どなたかアドバイスいただけませんでしょうか? 以下が、実際に組んでいるルールです。 -------------------------------------- RewriteEngine on RewriteRule ^/m/plan/detail/([0-9]+).php$ /m/plan/detail.php?gdid=$1 [L] -------------------------------------- として、例えば http://www.hoge.jp/m/plan/detail/1000.php にアクセスがあった場合に、 http://www.hoge.jp/m/plan/detail.php?gdid=1000 の中身を表示させたいのですが、 「ファイルがありません」の404エラーが返ってきます。。 ちなみに、rewriteモジュールが正しく動作することは確認出来ており、 例えば、 -------------------------------------- RewriteCond %{HTTP_USER_AGENT} (DoCoMo|Vodafone|J-PHONE|SoftBank|UP\.Browser|KDDI|Googlebot-Mobile|Y!J|Nokia) RewriteCond %{REQUEST_URI} !^/m/ RewriteRule ^(.*)\.php$ /m/$1.php [L] -------------------------------------- のようなモバイルサイトとPCサイトのURL正規化ルールは問題なく動きます。 お手数ですが、どなたかアドバイスいただけますと幸いです。

    • 締切済み
    • PHP
  • アドレスの最後に/が無い場合、/ありのアドレスに飛ばしたい

    mod_rewrite を使って、静的なページのようにアドレスを表示させました。 http://****.jp/page/10/ このようなアドレスでアクセスできるのですが、アドレスの最後のスラッシュがなくてもアクセスする事が出来ます。 http://****.jp/page/10 ←スラッシュがない そこで、アドレスの最後のスラッシュがないアドレスにアクセスした場合、スラッシュありのアドレスに飛ばすにはどの様にすればいいのでしょうか? .htaccessは、下記のようにしています。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /page/index.php [L] </IfModule>

専門家に質問してみよう