我有这个网址:
http://www.site.com/en/about.php?id=112&name=andrew marshall dickens
我想像这样重写它:
http://www.site.com/112/andrew-marshall-dickens.html
到目前为止:
RewriteRule ^([^/]*)/([^/]*)\.html$ /en/about.php?id=$1&name=$2 [L]
我遇到' - '字符有问题。有什么建议吗?谢谢!
答案 0 :(得分:1)
你正在尝试使用正则表达式从字符串中间删除字符,该字符串可能在RewriteRule中间包含任意数量的该字符。一方面,这是不可能的,另一方面,你正在传入ID,所以我假设您可以使用PHP脚本中的ID获取名称,因此实际上不需要从URL解析名称变量,作为第三个选项,为什么不只是str_replace - PHP中的字符和ucwords()字符串输出之前如果你想使用名称变量?
答案 1 :(得分:0)
我相信你不需要传递名字参数,因为id可以得到它。
反正:
RewriteRule ^([0-9]+)/([a-z-]+)\.html$ /en/about.php?id=$1&name=$2 [L]
但是,嘿,阅读评论,我才意识到:你的问题是什么?你的正则表达式应该已经有效了