2013-11-22 29 views
1

我希望有一个子目录后,所有文件夹重定向:重定向所有子目录而不是父母

example.com/sub/sub2/some-place 
example.com/sub/sub3/some-place 
example.com/sub/subY/some-place 

到一个子域:

sub.example.com/sub2/some-place 
sub.example.com/sub3/some-place 
sub.example.com/subY/some-place 

这是我使用的规则,它的工作原理:

RewriteRule ^sub/(.*)$ http://sub.example.com/$1 [R=302,L] 

但是,我不希望example.com/sub/目录被重定向。

example.com/sub/应该留在/子

用户访问/ 用户访问example.com/sub/ANYTHINGELSE应该被重定向到sub.example.com/ANYTHGINELSE

在此先感谢。

编辑:问题:如何添加排除规则?例如:我想

example.com/sub/sub2/some-place 
example.com/sub/sub3/some-place 
example.com/sub/subY/some-place 

如上重定向但

example.com/sub/thispageshouldnotredirect 

到不能重定向。我尝试添加这条规则:

RewriteCond %{REQUEST_URI} !^/thispageshouldnotredirect 

编辑#2:目前这个工作对我来说:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/sub/thispageshouldnotredirect/?$ 
RewriteRule ^sub/(.+)$ http://sub.example.com/$1 [R=302,L] 

回答

2

使用.+代替.*,以确保有1个字符是/sub/后:

RewriteRule ^sub/(.+)$ http://sub.example.com/$1 [R=302,L] 
+0

这是工作非常感谢它。问题:如何将排除添加到规则?示例:我想要 example.com/sub/sub2/some-place example.com/sub/sub3/some-place example.com/sub/subY/some-place 重定向如上,但是 示例。 com/sub/thispage不应该重定向到NOT重定向。 我试着添加这条规则: RewriteCond%{REQUEST_URI}!^/thispage不应该直接对此 – whoback

+0

输入任何内容?谢谢! – whoback

+0

哦,我错过了你以前的评论。很难阅读那么长的评论。你能编辑这个问题并且清楚地解释这个新的需求,以便我可以相应地编辑我的答案。 – anubhava

相关问题