Facebook 在htaccess中,按照规则重定向url

Facebook 在htaccess中,按照规则重定向url,facebook,.htaccess,redirect,Facebook,.htaccess,Redirect,在此处输入代码我在apps.facebook.com/myappname/上开发了一个facebook应用程序,它是myappname.mydomain.com上的一个web应用程序主机 在facebook应用程序中,只是url库不同,第二部分url相同,例如: myappname.mydomain.com/home apps.facebook.com/myappname/home myappname.mydomain.com/product apps.facebook.com/myappnam

在此处输入代码
我在apps.facebook.com/myappname/上开发了一个facebook应用程序,它是myappname.mydomain.com上的一个web应用程序主机

在facebook应用程序中,只是url库不同,第二部分url相同,例如:

myappname.mydomain.com/home apps.facebook.com/myappname/home

myappname.mydomain.com/product apps.facebook.com/myappname/product

我只想显示facebook的url,而不是真实的url,所以出于这个原因,我需要在htaccess中创建一个规则重定向。我指的是一条规则,它只将基本url从apps.facebook.com/myappname/更改为myappname.mydomain.com/

可能吗?祝你好运

等待帮助我正在制定解决方案,也许这只是其中的一部分。在htaccess中,我添加了此代码

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !apps.facebook.com/myappname$ [NC]
RewriteRule ^(.*)$ https://apps.facebook.com/myappname/$1 [L,R=301]
但正如你们所知,facebook应用程序就像一个iframe,所以用这种方式启动一个包含的循环,我的应用程序就不起作用了。我需要为这个规则添加一个条件,“当url不在facebook iframe中时”你知道吗?德克萨斯州

重写cond%{HTTP_HOST}!apps.facebook.com/myappname$[NC]

这始终是正确的,因为到达服务器的请求永远不会将HTTP_主机设置为apps.facebook.com。(URL的路径组件不是域名的一部分…)

在这种情况下,使用mod_rewrite可以做的唯一一件事就是检查HTTP Referer,我想——如果它不是apps.facebook.com,那么你的应用很可能在FB iframe之外被调用。(但目前,推荐人的不可靠程度应该是众所周知的。)


你最好使用JavaScript检查你的应用程序是在iframe内调用还是自己调用(如果它在iframe中,假设它在apps.facebook.com上)

只有在顶部浏览器窗口中直接调用您的应用程序时,才会触发此代码。如果应用程序是框架式的,无论是否在facebook.com上,此代码都不会起任何作用


您可以在服务器配置中添加
X-Frame-Options
标题,这样您的应用程序只允许在apps.facebook.com的(i)框架中显示,而不允许在其他任何地方显示。如果你将其与JS方法相结合,你可以非常肯定,如果你的应用程序是“框架”的,那么它就在apps.facebook.com上,而不是其他地方。

两个工作日后,我明白了这一点,请回复,这是我的javascript解决方案

 <script>
if (parent.location.href == self.location.href) {
    window.location.href = 'https://apps.facebook.com/myappname' + window.location.pathname;
    //alert(window.location.pathname);
}
</script>

if(parent.location.href==self.location.href){
window.location.href=https://apps.facebook.com/myappname'+window.location.pathname;
//警报(窗口、位置、路径名);
}

PS.tx至最大值

是的,这是可能的。试试看,让我们知道进展如何。这是答复吗?什么意思?让我看看我是否理解:您想将所有请求,如
myappname.mydomain.com/whatever
映射到
apps.facebook.com/myappname/whatever
,还是相反?在任何情况下,您都必须能够访问请求URL根目录下的.htaccess文件,是吗?是的,使用htaccess规则,我需要将myappname.mydomain.com/where重定向到apps.facebook.com/myappname/where。是的,我可以修改htaccess。德克萨斯州
 <script>
if (parent.location.href == self.location.href) {
    window.location.href = 'https://apps.facebook.com/myappname' + window.location.pathname;
    //alert(window.location.pathname);
}
</script>