這是mod_rewrite的
RewriteEngine On
RewriteCond %{HTTP_HOST} =www.site.com [NC]
RewriteRule ^/?(.*) http://portal.site.com/$1 [R=301]
將重定向一切都非常簡單。但是如果您在www.site.com上發佈了一些新內容,而您又不想重新定向?
如果您只是在www.site.com上有靜態內容,那麼很容易。只需爲不存在的文件/文件夾添加一個「404」測試。
RewriteEngine On
RewriteCond %{HTTP_HOST} =www.site.com [NC]
# 404 test -- file/folder exists?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(.*) http://portal.site.com/$1 [R=301]
但是,如果你有www.site.com一些新的「虛擬」的網址不直接對應於文件上的文件系統,那麼你就必須弄清楚如何篩選這些出你的重定向規則(否則在404-測試中你會得到誤報)。比方說,在www.site.com虛擬內容,即不應重定向,所有/ newsite/...然後開始你會像這樣結束:
RewriteEngine On
RewriteCond %{HTTP_HOST} =www.site.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?newsite/
RewriteRule ^/?(.*) http://portal.site.com/$1 [R=301]
是我的答案都有幫助嗎?希望你能夠讓你的配置工作! –