我在网上搜索了一些关于URL重写的内容,并找到了一些很好的指示,但不是我希望找到的。例如,我有www.example.com?id=11
,我希望显示类似www.example.com/mike
的内容,其中mike
是该ID的用户。
现在最好的解决方案是使用重写为:
www.example.com/11/mike
至www.example.com?id=11
我知道如何编写该规则,但有没有可能在没有身份证号码的情况下调用该规则?不管怎样,隐藏它?
答案 0 :(得分:2)
如果你想要/ mike,你必须在代码中拦截它并将其存储为索引。因此,不是在id = 11上进行搜索,而是改为使用slug = mike。
如果你走这条路线,你需要将相关字段作为索引,以防止任何不必要的数据库加载。
答案 1 :(得分:1)
首先,您将www.abc.com/11/mike
重写为www.abc.com?id=11
,而不是相反,即第一个外部请求被写入第二个内部请求,然后进行处理。
要回答您的问题否,除非您的应用知道如何从mike
而不是11
获取对象。如果是,你可以改写:
www.abc.com/11/mike to www.abc.com/?id=mike
或者您可以在没有查询字符串的情况下执行此操作,只要您的Web服务器配置正确,就可以从$_SERVER['PATH_INFO']
读取数据。
答案 2 :(得分:1)
不是真的。如果您需要将数据作为$_GET
变量传递给脚本,则必须通过URL传递。
您可以切换为使用$_POST
数据而不是$_GET
,但我不建议这样做。您也可以只更改脚本所需的内容并使用用户名而不是ID,然后您必须传递用户名(就像您想要的那样)并且可以完全删除ID。