htaccess将停放的域名重定向到主域名页面

时间:2011-11-03 11:57:52

标签: .htaccess mod-rewrite redirect rewrite

我有点麻烦,我已经在我的httacces上有这个代码,将停放的域名重定向到主域名上的自定义文件夹,如下所示:

RewriteCond %{HTTP_HOST} ^www.parked.com [OR]
RewriteCond %{HTTP_HOST} ^parked.com$
RewriteRule ^(.*)$ http://www.maindomain.com/custom_folder/ [R=301,L]

工作正常。

但是,我还需要将自定义文件夹/页面从托管域重定向到主域,如下所示:

www.parked.com/custom_folder - > www.maindomain.com/custom_folder/some_thing

我不能这样做。我尝试添加上面的代码,但所有内容都重定向到第一条规则:

RewriteCond %{HTTP_HOST} ^www.parked.com/some_thing[OR]
RewriteCond %{HTTP_HOST} ^parked.com/some_thing$
RewriteRule ^(.*)$ http://www.maindomain.com/custom_folder/some_thing [R=301,L]

有人能指出我正确的方向吗?感谢

1 个答案:

答案 0 :(得分:1)

some_thing不会成为%{HTTP_HOST}的一部分。它是URL其余部分的一部分。所以你想要:

RewriteCond %{HTTP_HOST} ^www.parked.com$ [OR]
RewriteCond %{HTTP_HOST} ^parked.com$
RewriteRule ^/some_thing http://www.maindomain.com/custom_folder/some_thing [R=301,L]

此外:

  1. 确保问题中的第二个块(some_thing - &gt; custom_folder / some_thing)在<。em>第一个块(/ - &gt; custom_folder)之前来自.htaccess。否则第一次重写将生效,第二次重写将没有机会。

  2. 如上所述,您的第二个块有语法错误:

    RewriteCond %{HTTP_HOST} ^www.parked.com/some_thing[OR]
    

    some_thing[OR]之间缺少一个空格,这将打破这个条件,如果这真的是你的.htaccess文件中的内容。