【发布时间】: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