- PR -

HTML の A タグでホスト名は省略したいけど、ポート番号は指定したい

1
投稿者投稿内容
フレ
会議室デビュー日: 2003/03/23
投稿数: 12
投稿日時: 2008-04-01 11:03
自作の HTML ページに
80 番以外のポートを使っているページへの
リンクを追加したいと考えています。

例)
<a href="http://xxxxx:1158/em/console/">Oracle Enterprise Manager</a>

ただし、複数のマシンに自作の HTML を配置した場合の事を考えると、
href 属性にはサーバのホスト名やIPアドレスを記述したくないと考えております。

とりあえず以下のような書き方を試してみましたが予想通り NG でした。

<a href=":1158/em/console/">Oracle Enterprise Manager</a>

<a href="http://:1158/em/console/">Oracle Enterprise Manager</a>

以下のように書くと 80 番ポートに行っちゃいますし...。

<a href="/em/console/">Oracle Enterprise Manager</a>

ターゲットのブラウザは IE6, IE7 です。

また、自作のページを置いているのは
80 番ポートを使っている Apache の DocumentRoot 配下です。
※Apache の htdocs の下です。

何か良い書き方をご存知の方がいらっしゃいましたら
教えていただけると助かります。

以上です。
よろしくお願いします。



[ メッセージ編集済み 編集者: フレ 編集日時 2008-04-01 11:58 ]
kiyokura
ベテラン
会議室デビュー日: 2007/08/08
投稿数: 69
お住まい・勤務地: 岡山
投稿日時: 2008-04-01 13:03
うまい方法が思いつかないので少し苦肉の策っぽいですが……。
もしSSIを使えるなら、SSIでホスト名を返すスクリプトかプログラムを作って呼んでやる、というのはどうでしょう。
(以下の場合、hogehogeがホスト名を返すなにか)
コード:
<a href="http://<!-- #exec hogehoge -->:1158/em/console/">


mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-04-01 13:35
JavaScriptでlocation.hostを使ってタグを書く。
…オフにされたら動かないけど。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2008-04-01 13:45
引用:

フレさんの書き込み (2008-04-01 11:03) より:
ただし、複数のマシンに自作の HTML を配置した場合の事を考えると、
href 属性にはサーバのホスト名やIPアドレスを記述したくないと考えております。


深読みしすぎている気がするけど、ひょっとしてlocalhostとか127.0.0.1と指定すればいいとか?
みなと
大ベテラン
会議室デビュー日: 2002/06/14
投稿数: 202
お住まい・勤務地: Q州地方の日本海側
投稿日時: 2008-04-01 13:47
こんにちは
引用:

フレさんの書き込み (2008-04-01 11:03) より:
自作の HTML ページに
80 番以外のポートを使っているページへの
リンクを追加したいと考えています。

例)
<a href="http://xxxxx:1158/em/console/">Oracle Enterprise Manager</a>

ただし、複数のマシンに自作の HTML を配置した場合の事を考えると、
href 属性にはサーバのホスト名やIPアドレスを記述したくないと考えております。

また、自作のページを置いているのは
80 番ポートを使っている Apache の DocumentRoot 配下です。
※Apache の htdocs の下です。
[ メッセージ編集済み 編集者: フレ 編集日時 2008-04-01 11:58 ]



よく、使用状況がのみこめないのですけれど
リンク先は別のホストでなくて自分自身ですか?
ローカルでしか使わないのだったら、localhostでいいんじゃないですか?

http://localhost:1158/em/console/
127.0.0.1でもいいけども。

「ただし、複数のマシンに自作の HTML を配置した場合の事を考えると、」
この文章の意味が特につかめません。

#誤字修正とかしている間に同じ回答が(/ω\)

[ メッセージ編集済み 編集者: みなと 編集日時 2008-04-01 13:48 ]
フレ
会議室デビュー日: 2003/03/23
投稿数: 12
投稿日時: 2008-04-01 14:11
kiyokura さん、mio さん、冬寂 さん、みなと さん
情報ありがとうございます。

> もしSSIを使えるなら、...
>
SSI は使えない環境です。
今回は静的コンテンツだけで解決したいと考えております。

前提条件として先に書いとくべきでした。
すみません。

> 深読みしすぎている気がするけど、ひょっとしてlocalhostとか127.0.0.1と指定すればいいとか?
>
WWWサーバ上にHTMLファイルを置いて
PCのブラウザからHTMLにアクセスした場合、
localhost にしていると
ブラウザを表示しているPCにアクセスに行っちゃうので
ループバックアドレスは使えませんでした。

こちらもPCのブラウザから参照されるって事を
前提に書いておくべきでした。

重ね重ねすみません。

> リンク先は別のホストでなくて自分自身ですか?
> ローカルでしか使わないのだったら、localhostでいいんじゃないですか?
>
前述のとおり「ローカルでしか使わない」というわけではないので、
localhost は使えませんでした。

> 「ただし、複数のマシンに自作の HTML を配置した場合の事を考えると、」
> この文章の意味が特につかめません。
>
例えばWWW1(192.168.0.101)とWWW2(192.168.0.102)の
2台のサーバ上に同じHTMLファイルを置く事を想定しています。

そしてリンク先はHTMLファイルが配置されている
それぞれのサーバにしたかったのです。

この場合、ホスト名やIPアドレスはリンクに埋め込めないし、
localhost にしちゃうと PC からブラウザで表示した時に
正常に動かないし...という事で今回質問させていただきました。

> JavaScriptでlocation.hostを使ってタグを書く。
> …オフにされたら動かないけど。
>
今回は JavaScript をオフにはしない環境なので
いただいたアドバイスを元に
以下のように書いたら、希望している動作になりました。

<a href="#" onclick="location.href = 'http://' + location.host + ':1158/em/console/'">Oracle Enterprise Manager</a>

以上です。
お返事くださった皆様ありがとうございました。
ykSiR
会議室デビュー日: 2006/10/03
投稿数: 16
投稿日時: 2008-04-01 14:11
Apache限定になりますが、mod_proxyを使ってリバースプロキシとして設定すれば80番ポートでアクセスできます。

そうすればAタグにポート番号を指定する必要がなくなりますが、いかがでしょう?
フレ
会議室デビュー日: 2003/03/23
投稿数: 12
投稿日時: 2008-04-01 14:18
ykSiR さん情報ありがとうございます。

> Apache限定になりますが、mod_proxyを使ってリバースプロキシとして設定すれば80番ポートでアクセスできます。
>
とりあえず今回は JavaScript の使用不可という条件ではないので、
静的コンテンツだけで解決できる
JavaScript を使う方法にしたいと思います。

リバースプロキシを使うという発想は無かったので
大変参考になりました。

1

スキルアップ/キャリアアップ(JOB@IT)