【问题标题】:Rewrite URL across all sites in WordPress Multisite重写 WordPress Multisite 中所有站点的 URL
【发布时间】:2015-02-03 14:04:35
【问题描述】:

我正在为 WordPress 多站点构建一个插件,每个子站点都需要一个 SEO 友好的 URL,用于实际出现在同一页面上的各种选项卡。

我已经编写了检测正确 URL 并使用查询字符串显示相关选项卡的系统,但我想在没有查询字符串的情况下执行此操作...这就是我的意思:

目前
http://domain.com/subsite/?tab=contact
将加载子站点的主页,但包含“联系人”选项卡的内容。即

if (isset($_REQUEST['tab'])) {
    $tab = $_REQUEST['tab'];
    // Validate $tab here
    get_template_part('tab', $tab);
}

我需要什么
http://domain.com/subsite/contact
通过将 /subsite/whatever 重写为 /subsite/?tab=whatever

对所有子站点进行隐形重写,使其最终显示相同的内容

我们将不胜感激。

【问题讨论】:

  • 我觉得有点难以理解你想要什么。标签在网站内?为什么不使用 JavaScript 来更改选项卡?能给我们举个真实的例子吗?
  • 标签在页面中,它们本身不是页面,所以我使用 JS 在页面加载后加载标签,但我需要能够从地址栏不使用查询字符串。示例:我需要 domain.com/subsite/contact 在页面加载时加载联系人选项卡而不使用 javascript,以便搜索引擎看到它,而不是主页的内容。
  • 无法举出真实的例子,该项目处于保密协议下,该网站在密码墙后面进行开发。
  • 澄清一下,我不需要帮助加载内容...我需要帮助来重写 URL。只要 URL 正确重写,我就可以处理其余的。
  • 为什么不使用锚点?这样你就有domain.com/subsite/#contact,还不够吗?我从来都不喜欢 wordpress 中的自定义重写规则,但是这样的东西应该可以解决问题:Options +FollowSymLinks |重写引擎RewriteRule /tab/(.*) ?tab=$1

标签: php wordpress .htaccess rewrite multisite


【解决方案1】:

我不会像其他人一样评判你的方法,因为我对你的项目一无所知。

要实现您的需要,请使用 mod_rewrite 规则,如下所示:

RewriteEngine On
RewriteRule ^subsite/(.+)$ /subsite/?tab=$1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多