htaccess专家:将除root之外的所有内容重定向到一个TLD,将root重定向到另一个TLD - WordPress

时间:2012-05-22 04:36:10

标签: linux wordpress .htaccess redirect permanent

赞赏大师的帮助。

我被要求将客户端的WordPress主页放在一个TLD(即domain.eu)上,并将所有其他页面/目录设置为301到不同的TLD扩展名(即domain.com/everything-else)。不知道为什么要这么做,但显然这对客户来说很重要,而且我一直在努力让它发挥作用。有什么想法吗?

实施例

如果URL访问任何域TLD的根,则应将其重定向到.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有点新手,所以让我知道我是怎么做错的,谢谢!

2 个答案:

答案 0 :(得分:0)

WordPress将重定向任何与WordPress配置中的域不匹配的网址。您需要编写WP插件或使用代理来获取其他域的主页。

答案 1 :(得分:0)

尝试使用以下内容替换重定向匹配。

RewriteCond %{HTTP_HOST} !^domain.eu$ [NC]
RewriteRule ^/?$ http://domain.eu/ [R=301,L]