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 になって困っています。

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

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/08/16 22:45:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント35pt

CGI 中で環境変数から

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

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

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

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

id:ishideo

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

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

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

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

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

2006/08/10 15:58:32
id:fonya3 No.2

回答回数238ベストアンサー獲得回数10

ポイント35pt

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

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

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません