2012-07-20 88 views
0

我一直在试图找出mod_rewrite的几天,我在想,如果你们有什么想法现代重写/改写为子目录

我的主要领域是siteX.com,它映射到“的public_html”目录。

最近,我又添加了一个名为siteY.com的域名,并将'public_html/siteY/public_html'标记为其根目录。

现在我试图通过映射到'public_html/siteX/public_html'来更改我的siteX根目录,但是当我实现mod_rewrite时,它允许用户将url看作'http:// www.siteX.com/siteX/public_html”。我需要我的主域名自动映射到使用正确的目录只看'http://www.siteX.com'。

为了更好地说明我所指的目录。

public_html (siteX, my primary domain marks this as root directory) 
    - .htaccess file 
    - siteX 
     -public_html (siteX i want my primarily domain to mark this as root directory) 
    - siteY 
     -public_html (siteY.com marks this as root directory) 

我希望我明确提出了这个问题。谢谢。

这是目前重写规则我使用:

RewriteCond %{HTTP_HOST} ^(www.)?siteX.com [NC] 
RewriteRule ^$ http://www.siteX.com/siteX/public_html/index.php 

对于我的托管公司,我相信mod_rewrite的是去

+0

您是否尝试过'RewriteRule^siteX /(.*)/ siteX/public_html/$ 1'这样的理论,应该将'http://www.siteX.com/siteX/ public_html/index.php'重写为' HTTP:// www.siteX.com/SITEX/index.php' – Killrawr 2012-07-20 05:44:16

回答

1

当你有http://www.siteX.com作为一个目标的一部分的唯一途径RewriteRule,它会自动将重定向到浏览器。这就像有[R]标志。我想你想是这样的:

RewriteCond %{HTTP_HOST} ^(www.)?siteX.com [NC] 
RewriteCond %{REQUEST_URI} !^/siteX 
RewriteRule ^(.*)$ /siteX/public_html/$1 [L] 

要在内部重写主机siteX.com/siteX/public_html/目录中的所有请求。