我认为我的情况很特殊,谷歌没有告诉我太多信息。
我想要一种方法来在 html 中创建一个超链接,只需转到:http://:8081 http://:8080
当页面本身在端口 80 上运行时。
这通常很容易,但是它正在开发为虚拟设备,以便在我们的销售团队机器上离线运行,因此 IP 地址将始终根据其运行的机器而不同。我也不能为此使用 DNS。
据我所知,不可能有相对超链接来链接到另一个端口。然后我想我也许可以链接到“./site1”和“./site2”,然后使用 mod_rewrite 将这些链接写入正确的端口。
有人知道怎么做吗?我去做了,但当我意识到我想将 URL 重写为静态 IP 时,我陷入了困境,而我做不到!(apache 或 nginx 重写规则,或任何其他解决方案,非常欢迎!)
答案1
使用页面请求者请求页面的主机名,并向其添加端口。对于 CGI,它是 SERVER_NAME,但详细信息将取决于执行重写的内容。
答案2
感谢 pjz 的回复,事实证明我对 ServerName 有点困惑,因为我认为它依赖于 DNS。
我做了以下事情:
<VirtualHost _default_:80>
ServerName offlinewebdemo
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /site1\ HTTP/ [NC]
RewriteRule ^.*site1$ http://%{SERVER_NAME}:8081/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /site2\ HTTP/ [NC]
RewriteRule ^.*site2$ http://%{SERVER_NAME}:8080/ [R=301,L]
成功了 :-) 然后我在 html 中设置了相对链接。现在我可以正确点击链接,而不需要 DNS 或静态 IP。