.htaccess 在mod rewrite中的URL中添加连字符

muk1a3rh  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(114)

我很好奇为什么它不能工作,并寻找解决办法。
下面是我的htaccess

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

这样做效果很好,URL将是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

但它不起作用。-字符不被当作文字。有人能帮忙吗?谢谢。

hgb9j2n6

hgb9j2n61#

您必须转义-字符:

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

0ejtzxu12#

我知道这是一个老问题,但我刚刚花了一个小时弄清楚这个问题,所以我想我应该分享答案:
将连字符替换为[\-]以使RewriteRule将其视为字符串文字。
因此,最终代码将是:^field/category/([a-zA-Z0-9\-]+)[\-]([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

相关问题