如何改进跨域页面calling/loading

How to improve cross domain page calling/loading

NOTE: I am aware this is a little bit more Server than programming but Whosebug is a good place for .htaccess information I figured that some of you more Beautiful Whosebugers would have some useful advise. Many thanks.

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

我有一个域,www.domainA.com,它最终将成为众多域之一 A-E(不是字面上的 A-E,但你明白了),所有这些域都称为来自另一个域 DomainM.comDomainM.com 的某些页面的内容可以通过网络直接访问,但我们的想法是,这绝对不是访问者的主要来源。

关键是有人访问 DomainA.com 并看到来自 www.DomainM.com 的内容,但 URL 仍然在 www.DomainA.com.

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

.htaccess 在 www.DomainA.com 上:

RewriteCond %{HTTP_HOST} ^(www\.)?domainA\.org\.uk$ [NC]
RewriteRule ^(referencepage)/?$ http://www.DomainM.co.uk/ [P,NC]

这获取地址 www.domainA.org.uk/referencepage 并从 www.domainM.co.uk/referencepage 加载服务器数据,而访问者看不到 DomainM.com.

所以我有两个问题:

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

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

1b) 我如何才能获得有关加载和显示页面所需时间最多的更详细报告? 已解决

2) 是否有更多 efficient/effective 方式来设置这种形式的布局,主要的反对意见是在 DomainA 上显示 DomainM 而没有访问者 "leaving" DomainA

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

更新

我稍微简化了我的 .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/ [P,NC]

所以 www.DomainA.org.uk/business 加载 www.Domain.co.uk/business (实际上 URL 在 Domain.co.uk 上重写为: www.Domain.co.uk/page.php?name=business )。

更新 2

我在 DomainA 网站上的完整 htaccess:

Options -Indexes

#force www usage.
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]

#Start business pages
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www.southwold.org.uk/cranbourne$ [NC]
RewriteRule ^(.*) http://www.blythweb.co.uk/ [P,NC]

... (all pages references are the same structure as above) ... 

#End business Pages

#prevent error looping
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

<Files php.ini>
order deny,allow
deny from all
</Files> 

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

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

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

这意味着以下规则仅适用于 domainA.comwww.domainA.com.

的任何请求
RewriteRule ^(referencepage)/?$ http://www.DomainM.com/ [P,NC]

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

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

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


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

IE 开发者工具:

FireBug: