2011-04-07 33 views
0

.htaccess文件中下面的代码应该是,等我想,对重定向主域名的二级域名:的.htaccess域名转发问题

<ifModule mod_headers.c> 
Header unset Last-Modified 
</ifModule> 
# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 
RewriteCond %{HTTP_HOST} ^secondaryDomain1.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.secondaryDomain1.com$ 
RewriteRule ^/?$ "http\:\/\/mainDomain\.com\/" [R=301,L] 
RewriteCond %{HTTP_HOST} ^secondaryDomain2.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.secondaryDomain2.com$ 
RewriteRule ^/?$ "http\:\/\/mainDomain\.com\/" [R=301,L] 
RewriteCond %{HTTP_HOST} ^secondaryDomain3.com$ [OR] 
RewriteCond %{HTTP_HOST} ^secondaryDomain3.com$ 
RewriteRule ^/?$ "http\:\/\/mainDomain\.com\/" [R=301,L] 
RewriteCond %{HTTP_HOST} ^secondaryDomain4.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.secondaryDomain4.com$ 
RewriteRule ^/?$ "http\:\/\/mainDomain\.com\/" [R=301,L] 
RewriteCond %{HTTP_HOST} ^secondaryDomain5.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.secondaryDomain5.com$ 
RewriteRule ^/?$ "http\:\/\/mainDomain\.com\/" [R=301,L] 
RewriteCond %{HTTP_HOST} ^secondaryDomain6.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.secondaryDomain6.com$ 
RewriteRule ^/?$ "http\:\/\/mainDomain\.com\/" [R=301,L] 
RewriteCond %{HTTP_HOST} ^secondaryDomain7.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.secondaryDomain7.com$ 
RewriteRule ^/?$ "http\:\/\/mainDomain\.com\/" [R=301,L] 

不幸的是如果我键入www.secondaryDomain.com /index.html或www.secondaryDomain.com/directory它不会重定向到主域。 .htacess文件中做了什么错误?

回答

0
RewriteRule ^/?$ "http\:\/\/mainDomain\.com\/" [R=301,L] 

此重写网址结尾的/或者什么都没有。你应该使用类似的东西:

RewriteRule (.*) "http\:\/\/mainDomain\.com$1" [R=301,L,QSA] 

重定向和保留所有路径信息。

+0

谢谢@拉斯,我想我越来越近;现在如果我输入www.secondarydomain.com/index.html,它似乎尝试重定向到mainDomain.comindex.html。如果我输入www.secondaryDomain.com/directory,但我没有重定向。 – tje 2011-04-07 14:21:54

+0

@Laas,我已经使用'RewriteRule(。*)“http \:\/\/mainDomain \ .com \/$ 1”[R = 301,L]'并且它正确地重定向“www.secondaryDomain.com/ index.html。因此,这个问题的一半已经解决了,谢谢! – tje 2011-04-07 14:27:56

+0

啊哈!“RewriteBase /”从网址的开头抓起了斜杠,所以是的,你的解决方案是正确的。 – Laas 2011-04-07 14:30:41

0

试试这个:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*)$ http://mainDomain.com/ [L] 
</IfModule> 

我假设这个.htaccess文件是secondarydomain.com ...

+0

感谢您的回答;我不知道.htaccess文件是否用于辅助域,它位于连接到这些域的网站所在的服务器上。我试图做出你所建议的改变,但它对我没有帮助。不过感谢您的帮助! – tje 2011-04-07 14:06:16

+0

代码更新了...再试一次... :) – 2011-04-07 14:13:57

+0

试了一下,再次感谢,但它不工作;如果我输入www.secondarydomain.com/index.html它似乎尝试重定向到mainDomain.comindex.html(我得到'服务器未找到'的错误)。如果我键入www.secondaryDomain.com/directory我没有重定向,我不知道该从哪里去。非常感谢您的帮助! – tje 2011-04-07 18:27:08