我移動舊服務器到archive.example.com,和新的服務器將繼續在example.com運行,而所有的WWW網址規範化要麼example.com或archive.example.com,並應處理尾隨削減的問題。重寫規則:重定向舊路徑歸檔服務器。規範化,以非www域名?
舊的服務器有很多的目錄,所以一切都需要重定向到archive.example.com同時保留的路徑信息,除了將在新服務器上運行的幾個目錄。我不想重定向,將繼續爲新服務器的目錄是:
/(root) /static /blog /about
例如:
example.com => example.com www.example.com => example.com www.example.com/ => example.com/ example.com/blog => example.com/blog www.example.com/blog => example.com/blog www.example.com/blog/ => example.com/blog/
所有其他目錄應該重定向到archive.example.com。例如:
example.com/docs => archive.example.com/docs www.example.com/docs => archive.example.com/docs www.example.com/docs/ => archive.example.com/docs/ example.com/library/images => archive.example.com/library/images www.example.com/library/images => archive.example.com/library/images www.example.com/library/images/ => archive.example.com/library/images/
以下是我在我的httpd.conf文件:
ServerName example.com
ServerAlias www.example.com
UseCanonicalName On
# canonicalize www.example.com to example.com
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ $1 [R=301]
# redirect everything to archive.example.com except for a few directories
RewriteCond %{REQUEST_URI} !^(/|/static|/blog|/about)$
RewriteRule ^/(.*)$ http://archive.example.com/$1 [NC,R=301,L]
這是正確的和/或有更精確的方式?