2013-06-26 50 views
1

我试图让我的主域结构不会太杂乱,因此我将所有的域解析到他们自己的子文件夹中。所以,我试图做的是当用户去http://mydomain.com他们实际发送到http://mydomain.com/sub-directory使用.htaccess在URL中隐藏子文件夹而不破坏其他子域

这段代码的工作原理:

#redirect to submain subdomain 
RewriteEngine On 
RewriteCond %{THE_REQUEST} ^GET\ /submain/ 
RewriteRule ^submain/(.*) /$1 [L,R=301] 
RewriteRule !^submain/ submain%{REQUEST_URI} [L] 

然而,它打破了所有我已经加载到其他子域我主目录。

有关如何解决此问题的任何想法?

+0

所以你要应用这些规则只有主域? –

+0

是的。对不起,如果不明确。 – tbremer

回答

1
RewriteEngine On 
RewriteCond %{THE_REQUEST} ^GET\ /submain/ 
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ 
RewriteRule ^submain/(.*) /$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ 
RewriteRule !^submain/ submain%{REQUEST_URI} [L] 
0
Create a .htaccess file in root folder, and put this content inside(just change example.com and my_subdir): 

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?example.com$ 
RewriteCond %{REQUEST_URI} !^/my_subdir/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /my_subdir/$1 
RewriteCond %{HTTP_HOST} ^(www.)?example.com$ 
RewriteRule ^(/)?$ my_subdir/index.php [L] 
</IfModule> 
相关问题