转发所有请求但以不同方式处理根调用

时间:2015-03-02 08:34:18

标签: .htaccess

我有一个域名(例如doma.in)我仅用于转发目的。所以我创建了这个.htaccess定义:

RewriteEngine On
RewriteRule ^(.*)$ http://www.mydomain.tld/in/$1 [R=301,L]

这成功转发了以下方案中的电话

http://doma.in/abc     -> http://www.mydomain.tld/in/abc
http://doma.in/123     -> http://www.mydomain.tld/in/123
http://doma.in/abc/123 -> http://www.mydomain.tld/in/abc/123

但我想转发根电话,无论是否有www

http://doma.in
http://www.doma.in
http://doma.in/
http://www.doma.in/

http://www.mydomain.tld的根网址。

我尝试添加另一个RewriteCond,但此设置会在所有调用中抛出服务器错误:

RewriteEngine On
RewriteRule ^(.*)$ http://www.mydomain.tld/o/$1 [R=301,L]

RewriteCond ^(.*)doma.in/?$
RewriteRule ^(.*)$ http://www.mydomain.tld [R=301,L]

如何调整.htaccess以支持我的要求?

1 个答案:

答案 0 :(得分:1)

您可以使用:

RewriteEngine On

# root URL
RewriteRule ^/?$ http://www.mydomain.tld/ [R=301,L]

# all but root URL
RewriteRule ^(.+)$ http://www.mydomain.tld/in/$1 [R=301,L]

请务必在新浏览器中对此进行测试,以避免旧的301缓存。