0

例如,假设您当前托管了一个站点 www.domain.com,并且您要将其移至 www.new-domain.com。现在,目前您的博客结构是 www.domain.com/2012/09/post-name,而您的新博客结构将是 www.new-domain.com/blog/post-name。我知道我可以在 domain.com 上执行 301 永久重定向以指向 new-domain.com,但是有没有办法捕获长尾 URL 并使用 htaccess 重写正则表达式。通常我会这样做:

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/(.*)$ http://domain.com/blog/$3

如果我需要在同一个域中更改 URL 结构。这也会从旧域重定向吗?

4

1 回答 1

1

我假设您有两个域都指向同一个目录,否则询问来自旧域的重定向没有任何意义。

如果您在新域文档根目录上进行了重定向,您将永远不会看到来自旧域的请求,反之亦然。

如果两个域共享同一个文档根目录,则需要对主机进行检查:

RewriteEngine On
RewriteCond %{HTTP_HOST} domain.com$ [NC]
RewriteRule ^/?[0-9]{4}/[0-9]{2}/(.*)$ http://new-domain.com/blog/$1 [L,R=301]
于 2012-09-25T21:50:15.063 回答