相对HTML链接的端口号?

我觉得我有一个独特的情况,谷歌没有告诉我很多。

我想有一个方法来在HTML中有一个超链接,只需要去:http://:8081 http://:8080

当页面本身在端口80上运行时。

这通常很容易,但是这是作为一个虚拟设备在我们的销售团队机器上离线运行而开发的,因此IP地址将始终因运行的机器而不同。 我也不能使用DNS。

Afaik,不可能有一个相对的超链接来链接到另一个端口。 然后我想我可能只是链接到“./site1”和“./site2”,然后使用mod_rewrite将这些链接写到正确的端口。

有谁知道如何做到这一点? 当我意识到我想将URL重写为一个静态IP,我不能这样做的时候,我去做了,并被卡住了! (apache或者nginx重写规则,或者任何其他解决scheme非常受欢迎!)

使用页面请求者向页面请求的主机名称,并将端口添加到该页面。 CGI是SERVER_NAME,但是细节将取决于重写的内容。

感谢pjz的回应,事实certificate我对ServerName有点困惑,因为我认为它依赖于DNS。

我做了以下几点:

<VirtualHost _default_:80> ServerName offlinewebdemo RewriteEngine On RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /site1\ HTTP/ [NC] RewriteRule ^.*site1$ http://%{SERVER_NAME}:8081/ [R=301,L] RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /site2\ HTTP/ [NC] RewriteRule ^.*site2$ http://%{SERVER_NAME}:8080/ [R=301,L] 

这工作:-)然后我在HTML中设置相对链接。 我现在可以正确点击链接,而不需要DNS或静态IP。