我有两个链接:
http://something.something.com/ (an local institute server...)
http://xxx.xxx.xxx.xxx/ (an amazon cloud C2)
我希望我的用户和几乎每个人都可以访问http://something.something.com/
,但是这个链接不是我想要的配置,我只有FTP访问它,我希望它默默地将访问者重定向到{{ 1}}。
我已经使用iframe进行了研究和测试,但我没有翻译链接,例如,我没有例如http://xxx.xxx.xxx.xxx/
默默地翻译为http://something.something.com/something/
,在iframe上,它在本地服务器中搜索http://xxx.xxx.xxx.xxx/something/
,并且它不存在。导航iframe没有反映在本地主机地址
到目前为止我所阅读的内容会产生一些想法,例如使用something
或postMessage
,但我对这个问题的最佳(甚至是有效)解决方案感到困惑因为我甚至不确定我会在google上搜索什么,并且真的会感谢指导。
update.1:
我对FTP的访问权限有限,它是一个共享域名,所以我有一个.htaccess
目录,我无法访问服务器ROOT目录或系统和服务配置。
答案 0 :(得分:0)
在本地网络上,您可以通过在每台本地PC上将ip注册到/etc/hosts
来创建别名。
xxx.xxx.xxx.xxx someting.something.com
答案 1 :(得分:0)
这很棘手,但我已经解决了。为了使事情恶化,我的local
地址不允许使用.htaccess
代理规则,因此我依赖iframe
和postMessage
以及.htaccess
。
在缺乏代理方式后,我已经配置了.htaccess
,因此任何链接都会生成相同的地址,即我的index.html
文件:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteRule .* /index.html [L]
在用户访问的local server
上,我这样做了:
<iframe id="subD" width="100%" height="100%" src="http://x.x.x.x">
Sorry your browser did not support iframes.
</iframe>
<script>
// load url on iframe
var sub = window.location.pathname;
document.getElementById("subD").
contentWindow.document.
location.href="http://x.x.x.x" + window.location.pathname;
//get url from amazon server
window.addEventListener("message", updateUrl, false);
function updateUrl (event) {
var origin = event.origin || event.originalEvent.origin;
if (origin !== "http://x.x.x.x")
return;
current = window.location.pathname
//take care of maintaining a back history whille navigating
window.history.pushState({"link":current},"",event.data);
}
// on back/next event load history on frame
window.onpopstate = function(e){
if(e.state == e.state.link){
var rand = Math.floor((Math.random()*1000000)+1);
var iframe = document.getElementById('subD');
iframe.src = "http://x.x.x.x" + e.state.link + "?uid=" + rand;
} else {
history.back();
}
};
</script>
在amazon server
我发送消息以更新local server
:
<script>
parent.postMessage(window.location.pathname,"http://something.something")
</script>