【问题标题】:WordPress URL Rewrite to pass name of studioWordPress URL 重写以传递工作室的名称
【发布时间】:2013-08-27 04:43:42
【问题描述】:

我有一个网站http://hitplayyoga.com,我们在该网站上有一个工作室目录。它列出了我们系统中的所有工作室。我们现在正在写这个工作室的 URL 链接:

http://hitplayyoga.com/studio-detail/69 

这将正确显示 ID 为 69 的工作室的详细信息。我们希望更改 URL 以使其包含工作室名称。它应该是

http://hitplayyoga.com/studio-detail/69/3-Oms-Yoga 

-或-

http://hitplayyoga.com/studio-detail/3-Oms-Yoga

如何在 .htaccess 中编写一条规则,如果我包含 ID,则将页面重定向到 studio-detail/?id=$1&name=$2,如果我不包含 ID,如何将页面重定向到 studio-detail/?name=$2 ?我是 .htaccess 文件和重写规则的新手。感谢您的帮助!

【问题讨论】:

  • 加载工作室详细信息的 PHP 文件名是什么?它在什么文件夹中?您对.htaccesshttp://hitplayyoga.com/studio-detail/69 的当前规则是什么?还是您使用的是 WordPress 的目录插件?

标签: php wordpress .htaccess mod-rewrite rewrite


【解决方案1】:

您应该在 URL 中保留 ID。这是适合您的规则:

RewriteRule ^(studio-detail)/([0-9]+)/([^/]+)/?$ /$1/?id=$2&name=$3 [L,QSA,NC]

【讨论】:

  • 如果你打开这个网址:http://hitplayyoga.com/studio-detail/?id=69&name=3-Oms-Yoga 是否可以正常打开?
  • 我刚刚尝试打开 http://hitplayyoga.com/studio-detail/?id=69&name=3-Oms-Yoga 并得到 404 错误
  • 谢谢...我在使用此规则时收到 404 Not Found。如果我将 URL 更改为:hitplayyoga.com/studio-detail/69</kbd>,我的脚本中会出现 SQL 语法错误。然后,当我将 .htaccess 规则更改为: RewriteRule ^studio-detail/([^/]*)/([^/]*)/?$ studio-detail/?id=$1&name=$2 [ L,QSA,NC] 当我在 URL 中包含工作室名称时出现 404 错误,如果我将工作室名称留在 URL 之外并且只使用 ID,我会正确显示页面。有什么想法吗?
  • 问题甚至是这个 URL:http://hitplayyoga.com/studio-detail/?id=69&amp;name=3-Oms-Yoga 正在生成 404,所以你的脚本(或 WP)中有一些东西。由于这个基于查询字符串的 URL 没有使用 mod_rewrite 规则。
  • 我发现进入 URL 第三部分的任何内容都被视为搜索短语。所以 hitplayyoga.com/studiodetail/69/a<kbd> 找到了一个关于我们的页面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
  • 2011-05-29
  • 2014-08-25
  • 2013-07-18
相关资源
最近更新 更多