使用.htaccess从一个域重定向到另一个域

时间:2009-03-21 09:27:05

标签: wordpress url .htaccess url-rewriting

我最近为我的WordPress网站购买了一个新域名,我想将使用旧域名访问的任何人重定向到新域名。我没有移动服务器,只是添加了一个新域。

例如,如果他们去了其中任何一个:

http://www.example.net/some-article/
http://example.net/some-article/

然后我希望将它们重定向到相应的URL:

http://www.example.com/some-article/
http://example.com/some-article/

你会怎么做这个简单的.net - > .com使用.htaccess文件重定向?任何规则都应适用于.net域下的所有网址。

提前致谢。


编辑:我已在服务器上安装了.htaccess文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

AddHandler php5-script .php

4 个答案:

答案 0 :(得分:8)

您需要将这样的命令添加到.htaccess文件中:

重定向永久/某篇文章/ http://www.example.com/some-article/

这是一个mod_rewrite服务器吗?在这种情况下,您可以对所有路径执行通用重定向:

RewriteEngine On

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301]

答案 1 :(得分:3)

我会修改您现有的重写块,如下所示:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# New code to redirect from example.net to example.com
# Permanent redirect for caching purposes, also include the query string
RewriteCond %{HTTP_HOST} ^example\.net
RewriteRule (.*) http://example.com/$1 [R=permanent,QSA,L]

# New code to redirect from www.example.net to www.example.com
RewriteCond %{HTTP_HOST} ^www\.example\.net
RewriteRule (.*) http://www.example.com/$1 [R=permanent,QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

AddHandler php5-script .php

请注意,我实际上没有测试过这个......

REMOTE_HOST也可以代替HTTP_HOSTmod_rewrite documentation建议使用HTTP_HOST,但如果浏览器只了解HTTP / 1.0

,这将不起作用

答案 2 :(得分:0)

我刚刚从Drupal转换为WordPress,最后花了很多时间试图让这些重定向工作正常。我最大的困难是弄清楚如何将RewriteCond与RewriteRule结合使用。这是我写的一篇文章的摘录:


# Rewrite drupal urls to worpress
RewriteCond %{QUERY_STRING} ^q=node/(.+)$
RewriteRule ^(.*)$ http://blog.componentoriented.com/?p=%1 [R=301,L]

# Forward RSS feed
RewriteCond %{QUERY_STRING} ^q=rss.xml$
RewriteRule ^(.*)$ http://blog.componentoriented.com/?feed=rss2 [R=301,L]
RewriteCond %{QUERY_STRING} ^q=atom/feed$
RewriteRule ^(.*)$ http://blog.componentoriented.com/?feed=rss2 [R=301,L]

关注入站点击和链接以查看是否有人使用您尚未翻译的旧版网址也非常有用。我有一个被编码为PostNuke URL的入站链接(来自两个博客平台!),这种技术使得它很容易修复。

这是我的文章的链接,顺便说一句:Use .htaccess to redirect from Drupal to Wordpress

答案 3 :(得分:0)

旧域:RewriteCond%{HTTP_HOST}!^ abcd.com $ [NC]

新域名:RewriteRule ^(。*)$ http://abcdef.com/ $ 1 [R = 301,L]

我敢打赌,如果你把它放在你的旧域名中,只需将第二行更改为新的域名,就可以使用你的新域名了。