如何改进跨域页面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.com
、DomainM.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.com
和 domain.com
):
RewriteCond %{HTTP_HOST} ^(www\.)?domainA\.com$ [NC]
这意味着以下规则仅适用于 domainA.com
或 www.domainA.com
.
的任何请求
RewriteRule ^(referencepage)/?$ http://www.DomainM.com/ [P,NC]
此行表示如果用户请求主页 (http://domainA.com/
) 或参考页 (http://domainA.com/referencepage
),请将请求域更改为 www.DomainM.com
。
但是你的重写规则有 P 标志,这意味着重写的 URL 将通过代理传递。
如果 DomainM.com
和 domainA.com
在同一台服务器上,我建议您删除 P 标志以避免这种情况(这意味着请求将花更少的时间)。
关于你的第一个问题:
如果你想知道加载什么需要时间,你可以使用 Firebug (firefox) 或 IE 的开发者工具(按 F12)。
IE 开发者工具:
FireBug:
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.com
、DomainM.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.com
和 domain.com
):
RewriteCond %{HTTP_HOST} ^(www\.)?domainA\.com$ [NC]
这意味着以下规则仅适用于 domainA.com
或 www.domainA.com
.
RewriteRule ^(referencepage)/?$ http://www.DomainM.com/ [P,NC]
此行表示如果用户请求主页 (http://domainA.com/
) 或参考页 (http://domainA.com/referencepage
),请将请求域更改为 www.DomainM.com
。
但是你的重写规则有 P 标志,这意味着重写的 URL 将通过代理传递。
如果 DomainM.com
和 domainA.com
在同一台服务器上,我建议您删除 P 标志以避免这种情况(这意味着请求将花更少的时间)。
关于你的第一个问题: 如果你想知道加载什么需要时间,你可以使用 Firebug (firefox) 或 IE 的开发者工具(按 F12)。
IE 开发者工具:
FireBug: