1

好的,我发现了一些与非常相似的问题有关的线程,但是使用为我自己的网站提供的答案没有任何运气。基本上我有 2 个站点,映射如下:

/public_html/ - points to main domain (www.site1.com)
/public_html/site2.com - points to secondary domain (www.site2.com)
/public_html/portal - points to my target subdirectory

我正在尝试获取对 www.site2.com/portal 的所有请求以透明地加载 www.site1.com/portal,也就是说,我仍然希望 www.site2.com/portal 显示在地址栏中。

RewriteCond %{HTTP_HOST} ^(www\.)?site2\.com [NC]
RewriteCond %{REQUEST_URI} ^/portal/(.*)$
RewriteRule ^/(.*) /portal/$1 [L]

根本不起作用

RewriteCond %{HTTP_HOST} ^(www\.)?site2\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/portal/(.*)$
RewriteRule ^(.*)$ http://site1.com/portal/$1 [L]

带我到http://site1.com/portal/site2.com/portal

这几天我一直在用头撞墙,任何帮助将不胜感激!

4

1 回答 1

1

除非您在 httpd.conf 中启用 mod_proxy,否则您当前的设置将不支持您尝试获取的内容。因此,您可以使用以下 2 个选项:

选项 1:启用 mod_proxy 并保留当前目录结构

将此代码放在您.htaccesspublic_html/site2.com目录下:

RewriteCond %{HTTP_HOST} ^(www\.)?site2\.com$ [NC]
RewriteRule ^(portal/.*)$ http://site1.com/$1 [L,NC,P]

选项 2:保留当前目录结构并创建一个符号链接,如下所示:

/path-to/public_html/site2.com/portal -> /path-to/public_html/portal

然后将此代码放在您.htaccesspublic_html/site2.com目录下:

Options +FollowSymLinks -MultiViews

恕我直言,选项 #2 对您来说会容易得多,因为它只需要创建一个符号链接(我相信您使用的是*nix.

于 2012-04-23T18:15:32.613 回答