2013-04-22 47 views
0

我想所有的URL重定向下我的域名如何为.htaccess重定向域子域,同时完整地保留

domain.com/urls,www.domain.com/profile/user1.html等在主域subdomain.domain.com/urls和subdomain.domain.com/profile/user1.html等

,但我不想重定向domain.com和www.domain.com到subdomain.domain.com

可以通过htaccess吗?

编辑:我只想重定向内部页面和文件只。但离开主要domain.com完好无损。

更多示例

domain.com/page1.html to subdomain.domain.com/page1.html 

www.domain.com/members/admin.html to subdomain.domain.com/members/admin.html 

www.domain.com to www.domain.com (no redirection here) 

回答

3

尝试:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/.+ 
RewriteCond %{REQUEST_URI} !^/index\.(php|htm) 
RewriteCond %{HTTP_HOST} !^subdomain.domain.com$ [NC] 
RewriteRule^http://subdomain.domain.com%{REQUEST_URI} [L,R] 

如果你想永久重定向,改变方括号:[L,R=301]

+0

这很好。谢谢。 – user1675934 2013-04-22 22:44:21

0

您可以先通过改写处理的主要页面,并重定向一切与第二规则

RewriteRule ^$ - [L] 
RewriteCond %{HTTP_HOST} !^subdomain.domain.com$ 
RewriteRule ^.+$ http://subdomain.domain.com/$0 [R,L] 

如果一切正常,你期望的那样,你可以改变RR=301

+0

这工作的子域名,但主页没有加载和铬浏览器说,有某种无限循环。 – user1675934 2013-04-22 22:47:41

+0

@ user1675934奇怪的是,我在我的测试环境中使用了这些规则,它们工作正常。无论如何,如果Jon的答案解决了你的问题,那很好,你应该接受它。 – 2013-04-22 23:19:25