【问题标题】:WordPress and ReWriteRuleWordPress 和 ReWriteRule
【发布时间】:2010-10-12 07:19:44
【问题描述】:

我的主题中有一个产品详细信息模板,用于根据 URL 处理不同产品的显示。

默认情况下,WordPress 将允许通过附加到 URL 的方式将数字传递给模板页面:product-details/3/

但是,我想使用 slug 使其对 SEO 更友好:product/sandals。然而,当我这样做时,WordPress 不再默认找到该页面。

我尝试了以下 ReWriteRule,但没有成功。

RewriteRule ^product/([\w\-]+)/?$ product-details/?slug=$1 [L]

如何将此自定义 slug 发送到模板。我希望将所有内容都保留在 WordPress 中,但我愿意添加 ReWriteRule

【问题讨论】:

  • 如何将 slug 发送到 Wordpress?换句话说,您需要 URL 的最终形式(如 Wordpress/模板所见)是什么?请注意,如果 Wordpress 只能接受数字,您将无法仅使用 mod_rewrite 将 slug 转换为数字。
  • @David 我知道我无法转换蛞蝓。我很高兴阅读来自$_GET 的 slug,正如尝试的 ReWriteRule 所暗示的那样
  • 好的,只要确保你知道 ;-) 在这种情况下,我不确定发生了什么。您的重写规则似乎应该有效,假设您将它放在与您的 WP 安装的 URL 位置相对应的目录中的 .htaccess 文件中。例如,如果产品页面可在例如example.com/store/product-details/3/ 确保将规则放入 ${DOCUMENT_ROOT}/store/.htaccess。您可能需要添加RewriteBase /store/,但我认为没有它应该可以工作。可以试试开启重写日志吗?
  • 您不能在 .htaccess 文件中执行此操作,因为 Wordpress 有自己的“重写”系统。我不清楚您到底想做什么,但这个问题 (stackoverflow.com/questions/3307352/…) 或 WP_Rewrite 类 (codex.wordpress.org/Function_Reference/WP_Rewrite) 的文档可能会有所帮助。
  • @Richard,感谢您的参考 - 他们让我走上了正确的道路。 @David,如果我的页面在 WP 结构之外,这将是一个选项。但是,这些页面是主题的模板。

标签: wordpress mod-rewrite url-rewriting


【解决方案1】:

感谢 Richard 在 OP cmets 中回答这个问题。为了完整起见,我已突出显示资源并将此问题标记为已回答。

http://codex.wordpress.org/Function_Reference/WP_Rewrite

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多