【问题标题】:Redirecting URLs to new domain using htaccess使用 htaccess 将 URL 重定向到新域
【发布时间】:2019-10-18 06:11:45
【问题描述】:

我想将旧站点上的一些 URL 重定向到新站点上的特定目标,并将其余 URL 重定向到主页。到目前为止,我已经尝试了以下方法:

  1. 对需要转到新网站上特定页面的所有链接使用重定向 301 /permalink https://newsite.com/permalink1/
  2. 对于其余部分,我添加了一个通用规则

    RewriteCond %{HTTP_HOST} ^oldsite\.com$ [NC]
    RewriteRule ^(.*)$ https://newsite.com [R=301,L]
    

但这会将所有页面重定向到新站点的主页。

然后我尝试用 RedirectMatch 替换上面的第 2 点

RedirectMatch 301 .* https://newsite.com

但这会尝试在新网站上找到完全匹配的内容。 oldsite.com/xyz 转至 https://newsite.com/xyz

另外,一些旧站点的网址有参数,oldsite.com/a=?b=123如何将这些参数重定向到新站点主页。

【问题讨论】:

    标签: wordpress apache .htaccess redirect


    【解决方案1】:

    这可能是一种直截了当的方法:

    RewriteEngine on
    
    RewriteCond %{HTTP_HOST} ^oldsite\.com$
    RewriteRule ^/?permalink1old(/.*)$ https://newsite.com/permalink1new$1 [R=301,QSA]
    
    RewriteCond %{HTTP_HOST} ^oldsite\.com$
    RewriteRule ^/?permalink2old(/.*)$ https://newsite.com/permalink2new$1 [R=301,QSA]
    
    RewriteCond %{HTTP_HOST} ^oldsite\.com$
    RewriteRule ^ https://newsite.com/ [R=301]
    

    因此,您将旧主机名上的旧永久链接重定向到新主机名上的新对应项,附加任何可能跟随在初始旧永久链接路径中的内容,并附加查询字符串以保留参数。

    如果永久链接在其路径中从未包含任何其他内容,那么您显然可以简化这些重定向:

    RewriteCond %{HTTP_HOST} ^oldsite\.com$
    RewriteRule ^/?permalink1old/?$ https://newsite.com/permalink1new [R=301,QSA]
    

    最好先从 302 临时重定向开始,稍后再将其更改为 301 永久重定向,前提是您确定一切都已正确设置。这样可以防止在尝试时出现缓存问题...

    此实现同样适用于 http 服务器主机配置或动态配置文件(“.htaccess”文件)。显然重写模块需要在http服务器内部加载并在http主机中启用。如果您使用动态配置文件,您需要注意它的解释在主机配置中完全启用,并且它位于主机的 DOCUMENT_ROOT 文件夹中。

    一般来说:您应该始终喜欢将此类规则放在 http 服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。这些动态配置文件增加了复杂性,通常是导致意外行为的原因,难以调试,而且它们确实减慢了 http 服务器的速度。它们仅在您无法访问真正的 http 服务器主机配置(阅读:非常便宜的服务提供商)或坚持编写自己的规则的应用程序(这是一个明显的安全噩梦)的情况下作为最后一个选项提供。

    【讨论】:

    • 感谢您的解释。我最终做的是:
    • 嗯,你所做的并不多,是吗? ;-)
    • 是的,对不起!问题是对于特定的 url 参数,我想重定向到没有查询字符串的页面。您提供的建议保持查询字符串不变。所以我使用了RewriteCond %{HTTP_HOST} ^oldsite.com\.com$ [NC] RewriteCond %{QUERY_STRING} a=b [NC] RewriteRule ^(.*)$ https://newsite.com/new-link [R=301,QSD,L]。其余的则按照您的建议进行简单的重定向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2015-12-16
    • 2015-07-17
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多