添加 - 而不是重写URL中的空格

时间:2012-02-16 17:29:05

标签: php url rewrite

我有这个网址:

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]

我遇到' - '字符有问题。有什么建议吗?谢谢!

2 个答案:

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

但是,嘿,阅读评论,我才意识到:你的问题是什么?你的正则表达式应该已经有效了