2016-01-13 145 views
1

我已經在這個問題上花了足夠多的時間,並沒有成功,所以現在是時候提問。.htaccess 301重定向XAMPP

我現在正在討論的問題的具體部分是將非WWW URL重定向到WWW URL。這樣做有很多資源,沒有一個能夠正常工作。

我目前有以下內容,文件中沒有其他內容。

ErrorDocument 404 /404.php 

Options -MultiViews 

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

我也試過很多變化,包括硬編碼的URL。

以下是XAMPP和實時版本中各種瀏覽器發生的情況。

XAMPP, Firefox. "example.com" -> "http://www.example.com/" 
XAMPP, Chrome. "example.com" -> ERR_NAME_NOT_RESOLVED 
XAMPP, Edge. "example.com" -> Hmm, we can't reach this page. 

Live, Firefox. "example.com" -> "http://www.example.com/" 
Live, Chrome. "example.com" -> "http://www.example.com/" 
Live, Edge. "example.com" -> "http://www.example.com/" 

(直播,邊,沒有當我開始這個職位,但我忘了清除緩存。我仍然有興趣在得到它所有XAMPP工作雖然。工作)

這是禁用301重定向緩存。爲XAMPP設置虛擬主機以將example.com映射到htdocs/example。 example.com映射到hosts文件中的localhost。

我怎樣才能讓這些輸入爲XAMPP託管的服務器工作呢?任何解決方案都需要與具有乾淨URL,尾部斜槓,截短斜線和刪除.php擴展名兼容。

誰做Web開發這麼辛苦......

+1

這聽起來像一個DNS /緩存出現了問題。您發佈的.htaccess代碼沒有問題,特別是如果這適用於某些環境而不適用於其他環境。當連接到本地(XAMPP)服務器時,您是否連接到互聯網?如果你在HOSTS中定義了'example.com',那麼你還需要在HOSTS中定義的www.example.com,否則它將重定向到現場(如果它解決了的話)。您的VirtualHost還需要能夠接受對「www.example.com」的請求,而不僅僅是「example.com」。 – MrWhite

+1

非常好,就是這樣。我添加了主機條目,然後添加了相同的虛擬主機條目,並且工作正常。那麼這是一個壓力的負荷消失了,非常感謝你。如果您將其添加爲答案,我會接受它。 –

回答

1

這似乎是一個DNS相關的問題。

爲XAMPP設置虛擬主機,將example.com映射到htdocs/example。 example.com映射到hosts文件中的localhost。

如果你在你的HOSTS定義example.com文件,那麼你還需要在HOSTS定義www.example.com爲好,否則會重定向到活動網站(如果它解決了在所有),這就是www.example.com點。

您當地的VirtualHost也需要能夠接受www.example.com的請求,而不僅僅是example.com。如果使用基於域名的虛擬主機,那麼你可以使用ServerAlias,例如:

ServerAlias www.example.com