0

我已将旧网站移至新域,但谷歌仍在显示我以前的链接,因此我制作了一个 htaccess 文件并进行了 301 重定向。以下是我的 htaccess 代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.old.com$
RewriteRule (.*)$ http://new.com/$1 [R=301,L]

它将旧网址重定向到新网址,但不是逐页进行。意味着如果我要去 www.old.com/about.php 那么它会将我重定向到 www.new.com/ 但我希望 www.new.com/about.php 出现。

你能建议我如何使用正确的正则表达式以最少的工作来做到这一点吗?

4

2 回答 2

1

这将维护一切 - 查询字符串和请求路径:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.old.com$
RewriteRule ^(.*)$ http://new.com/$1 [R=301,L,QSA]
于 2012-05-09T05:28:41.580 回答
1

您根本不需要使用 mod_rewrite。只需使用:

<VirtualHost *:80>
    ServerName old.com
    ServerAlias www.old.com
    Redirect permanent / http://new.com/
</VirtualHost>

Redirect指令会自动保留/.

于 2012-05-09T05:28:45.037 回答