SERVER_PORTが443だとリンクが必ず https になってしまう (ハードコーディング)†
- ページ: BugTrack
- 投稿者: hiroki
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2003-05-22 (木) 12:10:09
- バージョン: 1.3.4
- リリース予定バージョン: 1.5.2
メッセージ†
apacheの設定によるものだと思いますが、SERVER_PORTが443だと
pukiwikiページ内のリンクがすべて"https://サーバ名:443/なんたら"になります。
pukiwiki側で"http://サーバ名/なんたら"というリンクにしたかったので、init.phpの
$script = (getenv('SERVER_PORT')==443?'https://':('http://')).getenv('SERVER_NAME').(getenv('SERVER_PORT')==80?'':(':'.getenv('SERVER_PORT'))).getenv('SCRIPT_NAME');
を
$script = (getenv('SERVER_PORT')==443?'http://':('http://')).getenv('SERVER_NAME').(getenv('SERVER_PORT')==80?'':'').getenv('SCRIPT_NAME');
にして逃げました。
- 全くの環境依存でしょうかね…?対策しておく価値はある気がします。1.4.4ではfunc.phpの537行目あたりでしょうか…? -- Ratbeta
- 片付けるために、問題点を明確にしましょう。ひとつは、http://~ というURLで最初にアクセスしたっていうのに、表示されたページに埋め込まれているリンクが全て http's'' になってしまうのはどういうこっちゃい!ということですね。うーんあともう一つくらいあったような・・・ -- henoheno
- ああ、それと、port 443 が https に対応しているとは限らない(設定依存)なのに、それを決め打ちしているのはおかしいですね。他にもあったような・・・ -- henoheno
- そうなるとfunc.phpの539行目、ポート80ならhttp://ってのも怪しくなります(^^; -- Ratbeta
- 思い出しました。以前いただいたメール(1.3系のユーザーの方)の中に、「SSLとBasic認証を組み合わせた場合、http://example.com/wiki/ に :443 が自動で挿入されるため、443を挿入せずにアクセスした場合に認証が2回要求される様です」というものがありました。気をつけるべきはこの位ですね。 -- henoheno
- このあたりを想定に入れつつ、再設計する必要があるでせう。 -- henoheno
- 2ちゃんねるのPukiWikiスレにも関連する問答がありました。 -- henoheno
- 関連:BugTrack/610 -- Ratbeta
- ここに投稿していいのかわからないのですが、関連していそうなので書きます。そして、激しく勘違いしてたらすいません
TrackBack送信するときにHTTPSの状態から送信しても相手に送信するアドレスはHTTPに変換とかってできますか?自分で認証・投稿するときにはHTTPSでアクセスしてるが、TrackBackはHTTPで送信したい。 -- 翔
- 関連: BugTrack2/299 --
- 関連: BugTrack2/124 --
- 対応しました commit:87416fbe41 -- umorigu