繁体   English   中英

关于修改网址的mod_rewrite问题

[英]mod_rewrite question about modifying urls

我终于在某种程度上降低了mod_rewrite规则,但想对此做更多一点,但不确定如何做。 这是我目前拥有的:

RewriteRule ^rider/(.*)/(.*)*$ /bar/standings/rider.php?lnum=$1&short=$2

这使我可以这样做:

http://pca.localhost/rider/214142/sme 
instead of 
http://pca.localhost/bar/standings/rider.php?lnum=214142&short=sme

这一切都很好,但我想对其进行进一步完善,以便:

http://pca.localhost/rider/fred/flinstone

但是,我需要传递lnum变量,因为它是唯一的真实id密钥(即,他们可能是数据库中名为fred flinstone的两个人)。 短变量没有多大关系。 我的目标是以某种方式传递名称而不显示lnum变量。 有没有办法做到这一点? 我可以通过某种方式隐藏lnum变量吗? 还是我需要做一些漂亮的php / mysql工作?

任何建议,评论或建议均受到欢迎。

当客户端重新访问您的网站时,您从客户端获得的唯一密钥就是URL。 如果URL不能唯一标识要查看的页面,则您必须显示某种歧义消除页面,或者必须放弃该想法。

您可以尝试在注册时为用户生成唯一的ID,并在整个过程中使用该ID。 例如弗雷德·弗林斯通

唯一ID =弗雷德(如果没有弗雷德已存在)唯一ID =弗雷德·弗林斯通(如果已经有弗雷德存在)唯一ID =弗雷德·弗林斯通1(如果已经存在弗雷德·弗林斯通)

这种逻辑。

如果首先必须从数据库获取ID,为什么不在cookie中使用会话ID? 或会话ID作为GET或POST参数(即带有隐藏的表单字段)。

无论如何,这样公开用户ID并不是很安全。 使用“随机” ID(例如会话ID),并将其链接到用户ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM