在mod_rewrite中的URL中添加连字符

时间:2013-04-21 07:52:56

标签: .htaccess hyphen

我很好奇为什么它无法工作并寻找解决方案。

以下是我的htaccess

RewriteRule ^field/category/([a-zA-Z0-9\-]+)&([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

效果很好,网址为domain.com/field/category/Ball&Drinks

如何更改& - 并使其成为domain.com/field/category/Ball-Drinks

我试试

RewriteRule ^field/category/([a-zA-Z0-9\-]+)-([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

它不起作用。 - 字符不是字面意思。有人可以帮忙吗?感谢。

2 个答案:

答案 0 :(得分:0)

你必须逃避 - 字符:

RewriteRule ^field/category/([a-zA-Z0-9\-]+)\-([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

答案 1 :(得分:0)

我知道这是一个老问题,但我花了一个小时搞清楚这一点,所以我想我应该分享答案:

[\-]替换连字符以使RewriteRule将其视为字符串文字。

所以最终的代码是:^field/category/([a-zA-Z0-9\-]+)[\-]([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2