【问题标题】:Redirect subdomain and path to main domain with same path将子域和路径重定向到具有相同路径的主域
【发布时间】:2016-10-07 19:55:53
【问题描述】:

我最近停止为我的博客使用子域,我需要将使用该域的所有链接转发到相同的链接路径,但在我的主域上。

例如:

  • blog.example.com/blog/sales/blog-title

需要重定向到:

  • www.example.com/blog/sales/blog-title

我可以重定向子域本身,所以

-blog.example.com/

  • www.example.com/blog

但是一旦我尝试重定向页面,它就不会重定向并且不会加载。任何人都可以对此有所了解吗?我目前在我的 htaccess 中有这个用于我的主要重定向:

RewriteCond %{HTTP_HOST} ^blog\.example\.com [NC]
RewriteRule (.*) http://www.example.com/blog/$1 [L,R=301]

我正在进行其他子域重定向,但没有通配符重定向。

【问题讨论】:

  • 你在哪里使用这些规则?在 root/blog/.htaccess 中?
  • 不,这是在我的 wordpress 网站的根目录中,博客包含在页面路径中,它不是文件夹
  • 您是否收到 404 错误?
  • 是的,如果我尝试访问带有 blog.example.com/blog/example-name 的链接,它会保持 URL 不变并显示 404 错误页面。

标签: wordpress .htaccess redirect mod-rewrite wildcard-subdomain


【解决方案1】:

在您的示例中,您希望从

重定向
blog.example.com/blog/sales/blog-title

www.example.com/blog/sales/blog-title

但是在您的规则中,您在替换部分插入另一个子目录blog,这给出了

www.example.com/blog/blog/sales/blog-title

相反,结果是错误 404。

要使用完全相同的请求路径从一个域重定向到另一个域,请使用

RewriteCond %{HTTP_HOST} ^blog\.example\.com$ [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R]

当它正常工作时,您可以将R 替换为R=301。切勿使用 R=301 进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2021-05-02
    • 2011-08-16
    相关资源
    最近更新 更多