我面临以下情况:
我建立了一个到我家的动态DNS连接,并将端口号80xx转发到我的NAS的80端口,所以我可以从远程访问它。
当我填写登录表单并尝试登录时,它指向没有端口号的地址,因此我必须手动修改浏览器栏中的地址以重新添加端口号。
表单设置如下:<form action="/" method="post" name="login" id="login">
如何修改页面以使其从远程,以及本地(在标准端口80上访问)上运行,而无需手动修改地址?
在我的“开发生活”的早期,我听说<base>
,但我不确定如何使用它来使页面在两种配置中都 。
由于
答案 0 :(得分:1)
根据评论
如果action属性未指定浏览器应该的原点 假设页面被请求的原点,所以你的场景 描述不应该发生。你确定端口没有 在其他地方指定。是发布表单的回复 带有Location头的302重定向,指定端口?
对于其他读者 - 在表单操作和重定向的位置标题中设置端口号应该可以解决问题。
答案 1 :(得分:0)
因为您有php,所以可能的解决方案是检测端口,如果不是80,则将其包含为表单操作。
<?
//use intval to be a little more secure
var port = intval($_SERVER['SERVER_PORT']);
var url="http://fullurl.com/";
if(!port==80){
url="http://fullrul.com:".port."/";
}
?>
然后您可以将表单打印为:
<form action="<?php echo url; ?>" method="post" name="login" id="login">
只要您在网址中输入端口,它就会打印到表单中。