2014-01-31 98 views
0

問題

我遇到的問題是讓VirtualHost工作正常。這是我有兩個設置:Apache VirtualHost無法正常工作

<VirtualHost *:80> 
    DocumentRoot "/Apps/XAMPP/htdocs" 
    ServerName wrks.tk 
    ErrorLog "/Logs/Workarea/Error.log" 
    CustomLog "/Logs/Workarea/Access.log" common 
    <Directory "/Apps/XAMPP/htdocs/Workspace"> 
     AllowOverride all 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot "/Apps/XAMPP/htdocs/REDIR" 
    ServerName www.wrks.tk 
    <Directory "/Apps/XAMPP/htdocs/REDIR"> 
     AllowOverride all 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

什麼這是應該,如果你連接到http://www.wrks.tk/http://wrks.tk/但出於某種原因,http://www.wrks.tk負載完全相同的網頁爲http://wrks.tk/(而不是重定向喜歡它的你要做的就是重定向應該也是)。但你可以看到兩個虛擬主機分別指向一個不同的目錄:

/Apps/XAMPP/htdocs(真正的主頁)是什麼http://wrks.tk負載

/Apps/XAMPP/htdocs/REDIR(重定向頁)它應該http://www.wrks.tk重定向到http://wrks.tk。這是我在文件中:

<html> 
<body> 
<script>window.location.replace("http://wrks.tk/");</script>  
<h1 style="text-align: center;">Redirecting you to the correct link</h1> 
</body> 
</html> 

一個簡單的重定向腳本,但不是這樣做,它只是加載網頁。解決方案


  • 嘗試清空緩存

  • 重啓動Apache多次
  • 檢查錯誤日誌(沒有這種幫助的任何錯誤)

但是,這些都不能解決我的問題,這就是我現在問這個問題的原因。

對任何混淆的道歉,非常相似的鏈接使理解和閱讀困惑。

但是要更好地解釋它,

連接到http://google.com/並注意它是如何將您重定向到http://www.google.com/

什麼我想要的基本上是相反的,但VirtualHosts不讓我這樣做。

回答

0

首先,你真的很接近。確保啓用mod_rewrite apache模塊。其次,你不需要兩個虛擬主機,所以你可以像這樣合併它們(我沒有改變路徑): 。現在

<VirtualHost *:80> 
    DocumentRoot "/Apps/XAMPP/htdocs" 
    ServerName wrks.tk 
    ServerName www.wrks.tk 
    ErrorLog "/Logs/Workarea/Error.log" 
    CustomLog "/Logs/Workarea/Access.log" common 
    <Directory "/Apps/XAMPP/htdocs/Workspace"> 
     AllowOverride all 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

目錄htdocs創建一個文件.htaccess的內容:

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

與內容完全地取下的REDIR目錄。這將htaccess將重定向網站開始www.非www。

+0

哇,謝謝。這將在未來爲我節省很多時間。 – user3186208