如何使用Apache将多个域重定向到不同的子目录

时间:2011-10-19 18:39:48

标签: .htaccess mod-rewrite apache2

我想将多个域重定向到不同的子目录。例如:

如果访问者使用具有HTTP重定向到www.mainme.com的域www.cookie.com,那么当访问者到达那里时,Apache会检测该域并将其重定向到mainme.com/cookie

puppy.com也是如此。如果它将HTTP重定向到mainme.com,当用户到达那里时会被重定向到mainme.com/puppy

这可以在.htaccess中完成吗?

使用Linux作为服务器,将/ var / www作为web文件夹。

现在不使用Virtualhost,但要学习如何操作。

2 个答案:

答案 0 :(得分:4)

我真的不知道你的意思

  

转发至www.mainme.com

如果通过HTTP重定向转发,则需要根据需要更改该重定向(因此请在最后附加/cookie/puppy。)

如果您的域名共享相同的文档,则需要将此代码放入其中的.htacces中:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?cookie\.com$
RewriteRule ^(.*)$ http://www.mainme.com/cookie? [R,L]
RewriteCond %{HTTP_HOST} ^(www\.)?puppy\.com$
RewriteRule ^(.*)$ http://www.mainme.com/puppy? [R,L]

修改 因此,您可能将http-referer作为用户来自的线索。试试这个:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http[s]?://(www\.)?cookie\.com(.*)?$
RewriteRule ^(.*)$ http[s]?://www.mainme.com/cookie? [R,L]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?puppy\.com(.*)?$
RewriteRule ^(.*)$ http://www.mainme.com/puppy? [R,L]

答案 1 :(得分:0)

我希望我理解你是正确的,但是如果通过“转发”你的意思是HTTP重定向,那么你所说的其余内容将无效。如果您已经通过将所有信息重定向到www.mainme.com而丢弃了该信息,则Apache无法检测该域。 (HTTP referer不可靠,因为它可以关闭(我把它关闭)但我不确定它对重定向的意义甚至是你需要的,或者它是否在浏览器中是一致的。)

我不确定你的意思是“告诉域名卖家”。是那些人,还是仅在注册商的控制面板中自行编辑设置?但我想无论哪种方式,如果你能告诉他们做一件事,你可以告诉他们做别的事情,所以:

最简单的解决方案可能只是重定向到不同的URL,而不是全部重定向到同一个URL。即,直接访问www.mainme.com/sitename。或者,如果您只能转发到域名而不是完整的URL,请为每个域名创建一个子域名:sitename.mainme.com,如果您想将其转到www.mainme.com/,则可以再次重定向。站点名。

另一种方法是将每个域的IP设置为mainme.com服务器,并将它们作为虚拟主机正常托管。如果您愿意,他们可以重定向,但您也可以直接从cookie / puppy / etc.com提供内容。