正则表达式网址重写-如何在网址上添加破折号而不是斜杠而没有参数错误

时间:2018-08-28 16:45:54

标签: php .htaccess url-rewriting

我在mu .htaccess文件上有以下正则表达式:

RewriteRule    ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?content=product&productid=$1&productitle=$2&categoryname=$3

在浏览器上,我得到以下信息: http://localhost/mysite/4/rome-walking-shared/rome

我想要这样的: http://localhost/mysite/4-rome-walking-shared/rome 通过"-"而不是"/"

将产品ID与产品标题连接在一起的情况

如果我尝试放"-"之类的"/"

RewriteRule    ^([A-Za-z0-9-]+)-([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ 

由于产品ID的$ get参数无法识别,我收到了Php错误

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我对正则表达式考虑太多,以至于我忘记检查从URL获取$ Get值的变量的值。因此,通过第二个正则表达式:RewriteRule ^([A-Za-z0-9-] +)-([A-Za-z0-9-] +)/([A-Za-z0-9-] +) /?$

网址采用以下值:http://localhost/mysite/4-rome-walking-shared/rome

用于查询Db的$ get变量的字符串值为“ 4-rome-walking-shared”,使用intval时该值变为4,则可以使数据库查询没有错误。