大師的幫助表示讚賞。htaccess experts:重定向除root以外的所有頂級域名,將根目錄重定向至另一頂級域名 - WordPress
我被要求將一個客戶端的WordPress主頁放在一個頂級域名(即domain.eu)上,並讓所有其他頁面/目錄301被添加到不同的TLD擴展名(即domain.com/everything-else) 。不知道爲什麼這是要求,但顯然這對客戶很重要,我一直在砸我的頭,讓它工作。有任何想法嗎?
實例:
如果URL擊中了任何領域頂級域名的根,他們應該被重定向到.eu域名(http://domain.eu/),但一切應到.COM域(http://domain.com/)
羅茨:
http://domain.com OR
http://domain.net OR
http://domain.edu/index.php OR
http://domain.org/index.html OR
http://domain.* (* = any extension)
301:http://domain.eu
但是,其他所有需要維護目錄結構,並被重定向到其他TLD(http://domain.com)。舉例..
來源:
http://domain.net/blog/category
301:
http://domain.com/blog/category
來源:
http://domain.org/blog/category/post
301:
http://domain.com/blog/category/post
一切我已經試過在重定向循環結束或只有部分成功。例如,下面的代碼放在WordPress重定向上方,並且它正確地重定向,即所有目標URL都被命中,但根(主頁)具有重定向循環錯誤。有什麼想法嗎?
RewriteEngine On
RewriteBase/
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RedirectMatch ^/$ http://domain.eu
RewriteCond %{REQUEST_URI} !^/$ [NC]
RewriteCond %{HTTP_HOST} ^domain.com.au$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain.eu$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain.de$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
我對htaccess有點新手,所以讓我知道我是如何去解決這個錯誤的,謝謝!
非常好,謝謝你的幫助! –
不客氣。 RedirectMatch屬於mod_alias,而不是mod_rewite。混合兩者有時會造成麻煩,所以最好避免這種情況。 – Gerben