htaccess重定向子域

时间:2013-03-13 12:49:25

标签: .htaccess

我想通过htaccess将feedback.domain.de重定向到www.domain.de/de/abc/cde.html。

我目前的htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301] 

所以,我想加上:

redirect 301 feedback.domain.de www.domain.de/de/abc/cde.html

但它不起作用。如果我尝试打开feedback.domain.de,它会重定向到www.domain.de

我知道这是一个非常简单的问题,但我不知道如何在htaccess中解决它: - (

我想要的结果是:

domain.de -> www.domain.de/de/index.html
www.domain.de -> www.domain.de/de/index.html

domain.de/de/example.html -> www.domain.de/de/example.html
etc...

feedback.domain.de -> www.domain.de/de/feed.html

祝你好运

1 个答案:

答案 0 :(得分:0)

Redirect指令只接受相对于根路径的路径(例如 / my-path ),并且在URL的主机部分不匹配。

试试这个(请注意,我在此假设您要将domain.de重定向到www.domain.de而不是所有子域):

RewriteEngine On

# Redirect feedback.domain.de to http://www.domain.de/de/abc/cde.html
RewriteCond %{HTTP_HOST} ^feedback\.domain\.de$
RewriteRule . http://www.domain.de/de/abc/cde.html [L,R=301] 

# Redirect domain.de to www.domain.de
RewriteCond %{HTTP_HOST} ^domain\.de$
RewriteRule . http://www.domain.de/$0 [L,R=301] 

更新回答(2013-03-18):

# Redirect feedback.domain.de to http://www.domain.de/de/abc/cde.html
RewriteCond %{HTTP_HOST} ^feedback\.(domain\.(de))$
RewriteRule .+ http://www.%1/%2/feed.html [L,R=301] 

# domain.de -> www.domain.de/de
RewriteCond %{HTTP_HOST} ^(domain\.(de))$
RewriteRule .+ http://www.%1/%2/$0 [L,R=301] 

# www.domain.de/de -> www.domain.de/de/index.html
RewriteCond %{HTTP_HOST} ^www\.domain\.(de)$
RewriteRule ^%1/?$ index.html [L,R=301]