gpt4 book ai didi

php - 重写产品名称的网址

转载 作者:IT老高 更新时间:2023-10-28 23:58:08 24 4
gpt4 key购买 nike

我想为我的产品重写规则。

我想在 url 中使用由破折号分隔的 id 和名称,如下所示:

123-name means product id = 123 and name = name

所以在我的 php 中我可以获得 $_GET[id] 然后使用这个 id 查询我的数据库,如下所示:

$sql = "SELECT * from Products Where productid = " . $_GET[id];

这是我所拥有的:

RewriteEngine On
RewriteRule ^products/([0-9+])\-([a-z]+)/?$ products.php?id=$2 [NC,L]

但是当我把它作为 url 时,我得到一个 404

为什么?

最佳答案

首先:您有语法错误。 [0-9+] 是一个字符类,可以匹配 (i) 09 范围内的数字,或 (ii) a + 符号。要将 + 用作量词(如预期的那样),请将 + 移动到 ] 之后,如下所示:([0- 9]+).

第二:您在商品中使用了$2,即产品名称。如果要使用ID,则必须使用$1

这是你需要使用的:

RewriteEngine On
RewriteRule ^products/([0-9]+)\-([a-z0-9_\-]+)/?$ products.php?product_id=$1 [NC,L,QSA]

我在产品编号中添加了短划线和下划线,以备日后需要。

第三:你应该知道sql injections ,您的脚本不安全。您可以使用 mysql_real_escape_string 来解决此问题.

关于php - 重写产品名称的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com