【问题标题】:301 redirect (.htaccess) of entire domain to another domain index301 将整个域的(.htaccess)重定向到另一个域索引
【发布时间】:2021-04-20 11:52:13
【问题描述】:

我已经尝试过自己解决这个问题,但我似乎无法弄清楚。

这是我想要做的:

创建将 subdomain.example.com 上的所有 URL(包括索引)的 301 重定向到 example.com

例如:

  • subdomain.example.com 重定向到 example.com
  • subdomain.example.com/blog-post 重定向到 example.com

这意味着我不想保留在 subdomain.example.com 上使用的相同 URL 结构。我只希望子域上的 URL 指向 example.com 上的索引。我知道这不是 SEO 的最佳解决方案,但这就是我想要的。

我已经尝试过使用

Redirect 301 / https://example.com/

但这会保留 URL 结构,我不希望这样。

那我该如何解决呢?

【问题讨论】:

  • “但保持 URL 结构” - 当然可以,文档明确说明了这一点。 RedirectMatch 没有那个“问题”,而使用 mdo_rewrite 将是解决此问题的另一种方法。

标签: apache .htaccess redirect


【解决方案1】:

根据文档https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect

保留网址的一部分。

使用redirectMatch,您可以使用正则表达式和替换来重写您的网址 例如

RedirectMatch 301 . https://example.com/

点 (.) 可以匹配任何内容。

【讨论】:

    【解决方案2】:

    Redirect 无法实现此目的,因为它将旧 URL 路径附加到新 URL 路径。你可以使用RewriteRule

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 2013-05-18
      • 2015-12-18
      • 2013-09-25
      • 2011-04-28
      • 2015-12-15
      • 1970-01-01
      相关资源
      最近更新 更多