如何將 ServerAlias - 請求重新導向到 ServerName 並遵守請求中的子目錄?

如何將 ServerAlias - 請求重新導向到 ServerName 並遵守請求中的子目錄?

我想重定向所有流量以example.com/*重定向到www.example.com/*

我發現如何將任何 ServerAlias 重新導向到對應的 ServerName?它處理了有問題的主題,並執行了答案中建議的操作,並獲得了四票贊成:

RewriteEngine On
RewriteCond %{HTTP_HOST}  !^www.example.com [nocase]
RewriteRule ^(.*)$        http://www.example.com$1 [last,redirect=301]

但是,此重定向流量將http://example.com/subdirectory前往http://www.example.com不是http://www.example.com/subdirectory所需。

有什麼藥可以解決這個問題嗎?

答案1

正確的方法是建立一個新的虛擬主機並且重新導向:

<VirtualHost *:80>
  ServerName example.com
  Redirect / http://www.example.com/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.example.com
  DocumentRoot /var/www/something
</VirtualHost>

相關內容