【问题标题】:Redirect Multiple URL within folder to other domain将文件夹内的多个 URL 重定向到其他域
【发布时间】:2017-08-02 07:37:41
【问题描述】:

我在旧域中的特定文件夹下放置了一些文件:

http://www.olddmain.com/subfolder/example1.html

我想将此文件夹下的所有文件重定向到新域。 示例:

http://www.newdomain.com/subfolder/example1.html

如何在不丢失页面排名的情况下做到这一点?

【问题讨论】:

  • “不丢失页面排名”是什么意思,谷歌中的页面排名?

标签: .htaccess redirect url-redirection


【解决方案1】:

也许你需要这个

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.olddomain\.com$
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^olddomain\.com$
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

来自Redirecting a Web Folder Directory to another Directory in htaccess中的“重定向到不同的域”

【讨论】:

  • 必须说,这是将olddomain.com重定向到newdomain.com的一种非常奇怪的方式!?但至关重要的是,如果olddomain.comnewdomain.com 指向同一个地方,这将导致重定向循环(这将是首先使用RewriteCond 指令的唯一原因)。这个答案还忽略了一个事实,即只有特定文件夹中的 URL 应该被重定向 - 而不是 everything.
【解决方案2】:

olddomain.com/subfolder/.htaccess 文件中,您只需要一个 mod_alias Redirect 指令即可将所有文件重定向到 newdomain.com/subfolder/<file>

Redirect 302 /subfolder http://www.newdomain.com/subfolder

仅当您确定它工作正常时,才将 302(临时)更改为 301(永久)。 (301 被浏览器硬缓存,因此可能会使测试出现问题。)

但是,如果 olddomain.comnewdomain.com 指向同一个地方,那么您将需要使用 mod_rewrite 并包含一个 condition 专门检查 host 是否存在请求,否则你会得到一个重定向循环。例如,在同一个olddomain.com/subfolder/.htaccess 文件中:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com [NC]
RewriteRule ^ http://www.newdomain.com%{REQUEST_URI} [R=302,L]

这会将olddomain.com/subfolder/<anything> 的任何请求重定向到http://www.newdomain.com/subfolder/<anything>

再次,当您确定它工作正常时,将 302 更改为 301。

【讨论】:

    猜你喜欢
    • 2017-02-27
    • 2019-02-16
    • 2012-03-27
    • 1970-01-01
    • 2012-12-03
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多