人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SSL、CGI を使ったサイトの質問です。

https://www.example.jp/form.html
にアクセスしたときの form.html に張られている相対リンク(例えば、./help.html) をクリックしたときに https://www.example.jp/help.html から http://www.example.jp/help.html に変換する方法を教えてください。

実際の例だと、はてなさんのログインページです。
ログインページ
https://www.hatena.ne.jp/login
から
ヘルプページ
https://www.hatena.ne.jp/what
にアクセスすると
http://www.hatena.ne.jp/what
に変換されます。

おそらく、mod_rewrite を使うことになるのでしょうか?

実際のサイトはただの Perl を使ったメールフォームです。/cgi-bin/ にしかプログラムを設置できません。
確認・完了画面はテンプレートからヘッダやメニュー画像を <base> タグで https の URL を指定して画像や相対リンクを表示させています。そのとき、ページ全体の相対リンクが https になって困っています。

もっとスマートな方法があるといいのですが・・・



●質問者: ishideo
●カテゴリ:ウェブ制作
✍キーワード:CGI HTML HTTPS mod_rewrite Perl
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

CGI 中で環境変数から

http://www.psl.ne.jp/httpd.shtml

$ENV{SERVER_NAME} や $ENV{SCRIPT_NAME} を使って呼び出されている URL を知ることが出来ますから、CGI 中で絶対パスを生成してしまってはどうでしょう?

相対リンクで無いといけない理由等がありますでしょうか?

また、単純な質問としてヘッダやメニュー画像を SSL でリンクしている理由がよく分かりませんでした。全部 http ではダメでしょうか?

◎質問者からの返答

回答ありがとうございます。

相対リンクで無いといけない理由は、プログラムを知らない人でも同じプログラムを使ってテンプレートを作成するためです。絶対パスだとサーバーにアップロードしなくてはならないので不便です。

SSL のフォームは一回呼び出すとすべてのリンクが https になります。理由は、ページすべて(画像ファイルを含む)を保護してあげる必要があります。(そうしないと「このページにはセキュリティで保護されている項目と保護されていない項目が含まれています。保護されていない項目を表示しますか?」と表示されます)

そのため、内部のリンクもフル URL にされている場合が多いです。または、別ウインドウにしてリンクしない場合もあります。

質問の説明が不十分だったかも知れません。


2 ● fonya3
●35ポイント

メタタグで0秒で飛ばすというのでは駄目ですか。

http://www.esli.co.jp/tech/meta3.html

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ