2010-05-23 51 views
2

我有这样的一个服务器和服务器的两个twitter.com网站我有论坛,其路径是像domain.com/forum1域。2服务器和2个应用程序

服务器上一个我想实现通配符dns,并在其上放置主域。但在服务器二我想保持论坛分开,我不能给子域forum.domain.com,因为它的所有链接已经放入搜索引擎并链接回domain.com/forum。

所以我在想,我怎样才能把域名和外卡的DNS服务器上的一个,仍然能够给在服务器2 domain.com/forum路径(如子文件夹)。

有什么想法?

你觉得htaccess可以做这项工作?如果是的话,那么如何?

+3

属于服务器故障 – Earlz 2010-05-23 19:51:46

+0

如果迁移到ServerFault,赏金是否会随之迁移? – 2010-08-07 15:01:00

回答

2

如果您在服务器1上使用指向server2的代理,您将增加服务器1上的负载,因为所有通信都将通过它进行路由。此外,如果服务器1停机,则任何人都无法到达服务器2。当然,虽然这是可能的,但是这些事情都是要考虑的。

无论如何,我建议设置服务器2的supdomain,如forum.domain.com,并在服务器1上设置301重定向从domain.com/forum到forum.domain.com使用来自htaccess的mod_rewrite。使用这种技术,你甚至可以将呼叫重定向到服务器2上相应页面的特定链接。搜索引擎将跟随301并且他们最终将更新索引。

1

如果你有两台服务器,你没有多少选择,只能使用重定向(最好是301永久重定向)将用户从domain.com/forum移动到forum.domain.com

唯一的方法是在这两个服务器前面放置一个反向代理服务器,它读取URL并在内部将查询指向正确的服务器,但这是一个额外的硬件。

+0

它可以完成从htaccess的权利? – Basit 2010-05-23 23:07:24

3

您可以使用htaccess以及mod_rewrite的如此domain.com/forum实际上是从forum.domain.com显示页面。

也许是这样的:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule domain.com/forum/(.+) forum.domain.com/$1 
2

可以使用301重定向,以确保搜索引擎更新它们的索引与新的网址,像这样:

RewriteRule domain.com/forum/(.*) http://forum.domain.com/$1 [R=301,L] 
3

简单 - 使用代理!如果你喜欢apache,你会喜欢apache mod_proxy来达到你的目的。

<VirtualHost *:80> 
    ServerName maindomain.com 
    ServerAlias *.maindomain.com 

    # insert document root and general settings for this domain here 
    # ... 

    ProxyPass /forum http://forumdomain.com 
    ProxyPassReverse /forum http://forumdomain.com 
    ProxyPassReverseCookieDomain forumdomain.com maindomain.com 
</VirtualHost> 

该配置使得阿帕奇做一个HTTP请求到您的内部结构域(forumdomain.com),而不notifiying内部位置的用户的浏览器。您的论坛将可在http://*.yourdomain.com/forum上访问。论坛的Cookies和头文件将被重写,搜索引擎将不会注意到您的后端服务器。

您可以在http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

阅读更多关于它,你应该需要重写参考罪您的HTML(HREF,SRC ......),你可能会在“mod_proxy_html”谷歌。

像这样的解决方案当然可以与其他智能proxyservers像鱿鱼建设也是如此。您可以使用它将任何来自“后端服务器”的内容映射到您的公共域。 确保路由是确定或建立一个主机条目内部域(forumdomain)与因特网IP-addresse 192.168 ...

享受你的网站,并给予反馈如何计算出:)

PS :一个“重写规则”指令有可能做同样的事情对你,但除非你指定“P”,foricng它做一个内部的代理请求rdirect将是由客户端可见(并执行)。如果可用,我宁愿mod_proxy,因为它更通用,并允许更多的配置。

相关问题