假设我有一个像index.php这样的文件需要处理这样的网址:
index.php?cat=1&sub=2&id=3
现在我希望有更好的网址,如下所示:
index.php/cars/bmw/x3
我的问题是,如果'cars'这个词是与'cat / category'id为1相关联的数据库中的名字,当我去index.php / cars时,url如何访问数据库,找到“汽车”,抓住它的相应ID为“1”,并将其映射到网址?
这个网站是Php / MySQL
答案 0 :(得分:1)
您需要使用RewriteMap指令
This page有一个类似于您需要的示例。
答案 1 :(得分:1)
在您的网络服务器的DocumentRoot内的.htaccess文件中放置以下代码:
RewriteEngine On
RewriteRule ^index.php/cars/(.+)$ /index.php?carName=$1 [QSA,L,NC]
这将使用查询参数carName在URL中的/ cars /之后调用index.php。
然后在你的index.php里写一个MySQL查询来查询数据库,比如:select * from cars_table where name = $ _ REQUEST [“carName”];并且您将能够检索匹配的汽车记录。
然而,正如上面提到的警告SQL受到SQL注入攻击一样,所以最好使用准备好的sql语句或Mysqli exetnsion of php来查询数据库而不是直接放置http请求值。