【问题标题】:redirect subdomain and retain url structure重定向子域并保留 url 结构
【发布时间】:2011-09-19 18:02:05
【问题描述】:

我正在将一个位于 subdomin 中的 wordpress 博客重定向到我的根目录。当我访问旧博客中的链接时,它们只是重定向到我博客的索引页面,但我需要它们重定向到实际帖子。例如 -

sub.mysite.com/1/2/3 - should redirect to -  mysite.com/sub/1/2/3

如何做到这一点?谢谢!

更新 - 仍然没有找到解决方案。有人吗?

或者这里是否有另一个已经存在的帖子可以告诉我正确的方法?谢谢!

【问题讨论】:

    标签: wordpress .htaccess redirect subdomain


    【解决方案1】:

    另一种方法是编辑您的网络服务器配置。

    Apache 的rewrite rules 可以做到这一点。您很可能在博客的根目录中有一个 .htaccess 文件。将下面的文本附加到它。如果没有这样的文件,创建一个。

    RewriteEngine On
    RewriteCond %{HTTP_HOST} sub.mysite.com
    RewriteRule ^(.*)$ http://mysite.com/sub$1 [R=permanent,L]
    

    您的网络服务器必须配置为接受来自 .htaccess 文件的配置。也可以直接放在配置中。此过程因您的虚拟主机而异。

    【讨论】:

    • 非常感谢。我尝试了您提到的 .htaccess 方法,但旧链接仍然重定向到 mysite.com/sub (根 - 不是完整的 url)。我最初在我的主机控制面板中设置子域。最初我将它指向一个子文件夹,现在我将它指向 mysite.com/sub。这会导致它总是转到根目录而不是原始帖子吗?
    • Web 服务器很可能不接受这些新规则。通常您需要重新启动 Web 服务器。如果托管公司不允许这样做,那么您也不走运。我刚刚测试了我写的规则,它们确实有效。~$ curl -I sub.mysite.com/1/2/3 HTTP/1.1 301 Moved Permanently Location: mysite.com/sub/1/2/3
    • 好的,我将主机上的子域设置重置为指向根目录。现在您在上面发布的规则确实将 mysite.com/sub 重定向到 sub.mysite.com,但不保留完整的网址。例如,如果有人访问 sub.mysite.com/1/2/3,则会收到 404 错误。
    【解决方案2】:

    Wordpress Redirection plugin 应该能够完全满足您的需求。

    如果没有,您也可以使用网络服务器的配置来完成此操作,但设置起来更复杂。在此页面上查看我的第二个答案。

    【讨论】:

    • 我在实施您的规则之前尝试使用重定向插件,它确实有效,但它没有保留完整的网址。例如,如果有人访问 sub.mysite.com/1/2/3,则会收到 404 错误。
    • 我支持这种方法。您可以使用正则表达式匹配 URL 的路径部分并将其插入新 URL。例如源 URL:sub.example.com(.*)$ 目标 URL:example.com/$1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2016-07-20
    • 1970-01-01
    • 2014-10-09
    • 2016-06-10
    • 1970-01-01
    相关资源
    最近更新 更多