【问题标题】:How to redirect url from a website with a blank sever to another website如何将 url 从具有空白服务器的网站重定向到另一个网站
【发布时间】:2021-11-20 08:26:22
【问题描述】:

我有一个旧网站,我删除了服务器上的所有内容。现在我想将它重定向到新网站。我希望它是这样的:

1.old.com => new.com

2.old.com/product=>new.com/product

只有这 2 个重定向。我尝试在旧网站上安装 prestashop 以进行重定向。我尝试将其添加到 .httaccess(我在空白服务器上安装了 prestashop),但它不起作用。

RewriteEngine on
RewriteRule ^(.*)$ http://newdomain.com/ [R=301]

请帮助我。非常感谢

【问题讨论】:

  • "只有这 2 个重定向。" - 只是那些“2 重定向”,或者你真的想将old.com/<any-product> 重定向到new.com/<any-product>? “它不起作用” - 请更准确地描述它不起作用的方式?错误的重定向?根本没有重定向?出错了?
  • 只是那 2 个重定向。因为我删除了服务器上的所有内容(不小心,我很笨)。所以我尝试使用全新的 .httaccess 上传一些新文件,以将这两个重定向到我的新站点(幸运的是它是一个旧站点)

标签: php html .htaccess


【解决方案1】:

好吧,您要求正好有两个重定向。所以你应该实现两个重定向:

RewriteEngine on
RewriteRule ^/?$ https://new.example.com/ [R=301,END]
RewriteRule ^/product/?$ https://new.example.com/product [R=301,END]

这依赖于 old.example.com 和 new.example.com 的名称解析来指向不同的系统。如果两个名称都解析到同一个系统,那么您需要添加一个条件来防止重定向循环:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^old\.example\.com$
RewriteRule ^/?$ https://new.example.com/ [R=301,END]
RewriteCond %{HTTP_HOST} ^old\.example\.com$
RewriteRule ^/product/?$ https://new.example.com/product [R=301,END]

任何其他请求都将导致 404 状态,假设旧主机名仍由某个其他系统提供服务。

一般来说,我建议在主机“old.example.com”的实际http服务器配置中实现这些规则,而不是使用分布式配置文件(“.htaccess”)。

【讨论】:

    【解决方案2】:

    您需要添加 %{REQUEST_URI} 参数。

    RewriteRule ^.*$ http://newdomain.com%{REQUEST_URI} [R=301]
    

    【讨论】:

    • 但它只适用于第一个是正确的。 old.com 上的每个 url 都会变成 new.com,对吧?
    • @Newbie 可以,如果域名后面有REQUEST_URI参数则不适用
    • @Plantour 域名后有REQUEST_URI参数则不适用是什么意思?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2021-11-07
    • 2016-07-16
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多