mod_rewrite:将域指向子文件夹(不带vhost)

时间:2011-08-14 19:56:29

标签: mod-rewrite redirect

我有两个别名域名,domain1.com和domain2.com 目前,他们都被引导到同一个地方,我的网络空间的根源。但是,我希望将它们分成独立的页面,并将domain2.com引导到具有不同内容的子文件夹中。

我知道正确的方法是使用Apache虚拟主机。但是,我的服务提供商不允许我访问该功能,所以我将不得不使用mod_rewrite解决它。

我需要的是将www.domain2.com和domain2.com指向子文件夹/(它应该触发index.php)。此外,www.domain2.com/file.txt应该转到子文件夹/ file.txt等...这就是我想出的:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} domain2\.com [NC]
RewriteRule ^(.*)$ subfolder/$1 [L]
</IfModule>

然而,当我运行它并转到domain2.com时,我收到500内部服务器错误并且日志文件显示:

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

为了测试发生了什么,我制作了一个小的PHP脚本,打印出它得到的字符串。 我还修改了规则:

RewriteRule ^(.*)$ subfolder/test.php?string=$1 [L]

现在,当我访问domain2.com或domain2.com/asd时,它会输出:subfolder / test.php 它以某种方式进入递归并打印自己。然而,如果我使用以下规则:

RewriteRule ^abc(.*)$ subfolder/test.php?string=$1 [L]

然后domain2.com/abcdef打印:def

我无法弄清楚我做错了什么。你有什么建议吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

重写规则可能适用于其出现的.htaccess的子文件夹。是否有助于添加阻止已经以subfolder/开头的网址重写的条件?