【问题标题】:Need to hide id in my RewriteRule in .htaccess需要在 .htaccess 中的 RewriteRule 中隐藏 id
【发布时间】:2015-08-17 07:02:26
【问题描述】:

我已经在 PHP 中构建了一个自定义业务目录,并且我正在使 URL 易于阅读。

我获取业务子目录的 URL 请求是:

http://.../new/business-subdirectory.php?cat=air-conditioners&cid=281

所以我在我的 .htaccess 中写了一条规则,它给了我很好的 URL

http://.../business-directory/air-conditioners/281

由于我的 MySQL 查询处理 ID,所以我必须在 Pretty URL 中传递 ID (281),但我不希望它在 URL 中。

我只希望漂亮的 URL 是:

http://.../business-directory/air-conditioners/

这是我的 .htaccess 规则:

RewriteRule ^business-directory/(.*)/(.*)/?$ new/business-subdirectory.php?cat=$1&cid=$2

我有一个选择是使用子目录名称而不是 ID...但是仍然想看看我是否还有其他选择...?

等待您的回答或建议:)

奥马尔

【问题讨论】:

  • /business-directory/air-conditioners/281 是一个不错的方案。在 SO 上查看此问题的 URL,该 URL 也具有问题 ID。
  • 如果 mysql 查询不在 url 中,将如何获取 Id 参数?
  • 这就是我在这里问的原因... ;)

标签: php mysql apache .htaccess mod-rewrite


【解决方案1】:

当您根据 URL 中传递的 ID 执行查询时。因此,如果不更改代码,您将无法实现您所期待的。

最好的选择是在 URL 中使用 slug 值,该值与您的 ID 相同,您需要根据此更改查询。

因此,如果 air-conditioners 的 ID 为 281,则您需要更改查询以根据类别 slug 而不是使用 ID 获取数据。

【讨论】:

  • 这是我在问题中提到的选项...所以我想我没有其他办法...谢谢 Avinash :)
猜你喜欢
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多