2016-12-29 272 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。