【问题标题】:Redirect Main Site to Subsite in Multisite Wordpress在多站点 Wordpress 中将主站点重定向到子站点
【发布时间】:2012-09-26 04:32:18
【问题描述】:

我有多站点 wordpress,我想将主站点重定向到子站点之一,但 .htacecss 中的重定向会出错。有什么方法可以将主站点重定向到其子站点。这看起来不可能,但我不是 wordpress 专家,所以只是验证一下。

重定向应该是这样的

重定向 301 link

或者如果有其他方法可以做到这一点?

【问题讨论】:

    标签: wordpress apache .htaccess redirect


    【解决方案1】:

    Redirect 指令不会将主机名作为 URI 路径的一部分(在您的情况下是第二个参数)。您需要使用 mod_rewrite 将其与 %{HTTP_HOST} 变量进行匹配:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/main-site/sub-site
    RewriteRule ^/?main-site(.*)$ /main-site/sub-site$1 [L,R=301]
    

    您需要将这些置于您的 htaccess 文件中可能已有的任何规则之上。

    【讨论】:

    • 感谢您的回答,重定向正在工作,但重定向后它会将 index.php 放在 URL 的末尾,这会导致错误。 index.php 不应位于 URL 的末尾。重定向后的 URL 看起来。 www.example.com/main-site/sub-site/index.php 那么我如何重写规则使 index.php 不应该在 url 中?它应该是 www.example.com/main=site/sub-site/
    • @Toqeer 您是否将这些规则置于您的 htaccess 文件中可能已有的任何规则之上?尤其是那些做 index.php 路由的?
    • 我把它放在 apache 配置文件中。让我尝试在.htaccess中添加它,我放入apache是​​因为已经定义了规则。
    • .htaccess 文件中有规则 RewriteEngine On RewriteBase /main-site/ RewriteRule ^index\.php$ - [L] 所以我应该删除它并放置上面定义的规则吗?
    • @Toqeer 我只提到 htaccess 是因为你已经用它标记了你的问题。如果这是在您的服务器配置中,则不应附加 index.php,除非您要访问的 URL 正在执行此操作,或者存在其他冲突并附加 index.php 的规则
    猜你喜欢
    • 1970-01-01
    • 2023-01-20
    • 2014-02-20
    • 2015-05-30
    • 2019-08-02
    • 1970-01-01
    • 2021-01-10
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多