如何改善跨域页面调用/加载

时间:2015-03-25 11:43:45

标签: apache .htaccess cross-domain

  

注意:我知道这比编程更多服务器   但StackOverflow是.htaccess信息的好地方    想到你们中的一些人   美丽的StackOverflowers会有一些有用的建议。许多   感谢。

我在LAMP堆栈上有多个域和一个cPanel后端。

我有一个域名www.domainA.com,它最终会成为众多域名AE之一(不是字面意义上的AE,但是你明白了),所有这些域都会调用来自其他域名的某些网页的内容,{{ 1}},DomainM.com可通过网络直接访问,但我们的想法是绝对不会成为访问者的主要来源。

关键是有人访问DomainM.com并查看来自DomainA.com 的内容,但该网址仍保留在www.DomainA.com

我目前在www.DomainM.com的.htaccess中设置了这个(来自我服务器上工作人员的建议)。我很确定.htaccess重定向不是最好的方法,但确实有效:

.htaccess DomainA.com

www.DomainA.com

这会占用地址RewriteCond %{HTTP_HOST} ^(www\.)?domainA\.org\.uk$ [NC] RewriteRule ^(referencepage)/?$ http://www.DomainM.co.uk/$1 [P,NC] 并从www.domainA.org.uk/referencepage加载服务器数据,而访问者则无法看到www.domainM.co.uk/referencepage

所以我有两个问题:

1)各种测量表明,大约30%的时间,这个系统加载页面需要2-4秒。我认为这将是由于处理两个服务器而我认为 .htaccess不是处理此声明的最有效方式。我们无法访问httpd.conf。

如何提高此设置的加载速度?

1b)如何获得有关加载和显示页面的最佳时间的更详细报告?的解决

2)是否有一种更有效/更有效的方式来设置这种布局形式,主要目标是在DomainM.com上显示DomainM而访客“离开”DomainA

P.S>如果有我正在尝试的名称,我可以更新问题标题,它可以用于参考搜索其他人和我自己。干杯。

更新

我稍微简化了DomainA规则,现在他们读了:

.htaccess

这样#This is to force to use www. RewriteCond %{HTTP_HOST} !^$ RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTPS}s ^on(s)| RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301] #Start biz pages #for each business in turn: RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www.DomainA.org.uk/businessName$ [NC] RewriteRule ^(.*) http://www.Domain.co.uk/$1 [P,NC] 加载www.DomainA.org.uk/business(在Domain.co.uk上重写的URL实际上是:www.Domain.co.uk/business)。

更新2

我在www.Domain.co.uk/page.php?name=business网站上的完整htaccess:

DomainA

1 个答案:

答案 0 :(得分:0)

让我解释一下Rewrite Engine的工作原理。例如,取http://domainA.com/referencepage。当您请求此页面时,您的浏览器会向Web服务器发送请求以检索它。您的Web服务器检查.htaccess并读取其重写规则。

您的重写条件是(我将其更改为匹配domainA.comdomain.com):

RewriteCond %{HTTP_HOST} ^(www\.)?domainA\.com$ [NC]

表示以下规则仅适用于domainA.comwww.domainA.com的任何请求。

RewriteRule ^(referencepage)/?$ http://www.DomainM.com/$1 [P,NC]

如果用户要求提供主页(www.DomainM.com)或参考页(http://domainA.com/),则此行表示将请求域更改为http://domainA.com/referencepage

但是您的重写规则有 P 标志,这意味着重写的URL将通过代理传递。

如果DomainM.comdomainA.com都位于同一台服务器上,我建议您删除 P 标志以避免这种情况(这意味着请求将花费更少的时间)。


关于你的第一个问题: 如果你想知道什么需要时间加载你可以使用Firebug(firefox)或IE的开发人员工具(按 F12 )。

IE开发人员工具: IE Developer Tools

萤火: FireBug