2016-12-29 273 views
0

我有与Apache的Ubuntu服务器。 Everythink工作正常。现在我有8个域名。一个与虚拟主机相关联。我们称之为maindomain.com。其他7个域名被链接到另一个虚拟主机,我们称之为secondarydomain1.com到secondarydomain7.com。.htaccess重定向不起作用我

我需要这7个域被重定向到主域。 /之后的所有内容必须重定向到基本域。例如secondarydomain2.com/file.php将被重定向到maindomain.com

有人可以帮助我如何使用.htaccess文件吗?

我试过这样的东西,但它不起作用。

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^secondarydomain\.com$ [NC] 
RewriteRule ^(.*)$ http://maindomain.com [R=301,L] 

结果是“您无权访问此服务器上的/file.php”。

+1

VirtualHost配置(或其中的'')是否有'AllowOverride'指令?没有它,根本就不会解析任何.htaccess文件。 –

+0

是的,我有AllowOverride之间的所有标签 – user7355347

+0

它的工作,因为它重定向我,如果我只使用一个域名,但如果有斜杠后的东西,它不起作用。 – user7355347

回答

0

您需要在apache中启用重写。

sudo a2enmod rewrite 

您的规则不加入的请求URI回域的一部分,这就是为什么你没有得到一个重定向子部分如您所愿。

试试这个:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^secondarydomain\.com$ [NC] 
RewriteRule ^(.*)$ http://maindomain.com%{REQUEST_URI} [R=301,L] 

测试在试验盒:

curl http://192.168.163.161/test.html 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>301 Moved Permanently</title> 
</head><body> 
<h1>Moved Permanently</h1> 
<p>The document has moved <a href="http://maindomain.com/test.html">here</a>.</p> 
<hr> 
<address>Apache/2.2.15 (CentOS) Server at 192.168.163.161 Port 80</address> 
</body></html> 
+0

这是启用的,还有另一个网站使用mod重写。 – user7355347

0

我有一些消息。事实上,工作重定向并没有真正起作用。它们是由Chrome缓存引起的。清理缓存后,出现错误“您无权访问此服务器上的/info.php”。如果.htaccess只看起来像这样:

RewriteEngine On 

Btw。我可以看到在phpinfo中启用mod_rewrite。