需要URL重写提示

时间:2011-09-16 17:58:45

标签: php http .htaccess

我在网上搜索了一些关于URL重写的内容,并找到了一些很好的指示,但不是我希望找到的。例如,我有www.example.com?id=11,我希望显示类似www.example.com/mike的内容,其中mike是该ID的用户。

现在最好的解决方案是使用重写为:

www.example.com/11/mikewww.example.com?id=11

我知道如何编写该规则,但有没有可能在没有身份证号码的情况下调用该规则?不管怎样,隐藏它?

3 个答案:

答案 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。