重写不起作用的规则

发布于 2024-12-25 14:34:12 字数 770 浏览 1 评论 0原文

我有以下动态 URL: http://www.lakaweb.com/dev/cserv/index.php?a=list&car=C5&year=2012&engine=1.8-HDi

其中我重写为http://www.lakaweb.com/dev/cserv/list/C5/2012/1.8-HDi

与:

RewriteRule ^dev/cserv/([^/\. ]+)/([^/\.]+)/([^/\.]+)/(.*)/?$ /dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4 [L]

现在,当我想在末尾添加另一个字段时,为什么不这样做这个重写规则有效:

RewriteRule ^dev/cserv/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/(.*)/?$ /dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4&service=$5 [L]

I have the following dynamic URL: http://www.lakaweb.com/dev/cserv/index.php?a=list&car=C5&year=2012&engine=1.8-HDi

in which I rewrite to http://www.lakaweb.com/dev/cserv/list/C5/2012/1.8-HDi

with:

RewriteRule ^dev/cserv/([^/\.]+)/([^/\.]+)/([^/\.]+)/(.*)/?$ /dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4 [L]

Now, when I wanna add another field at the end, why doesn't this rewrite rule work:

RewriteRule ^dev/cserv/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/(.*)/?$ /dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4&service=$5 [L]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

十年不长 2025-01-01 14:34:12

这是因为 ([^/\.]+) 匹配 '.'在 1.8-HDi 中作为片段之一的结尾。该规则应该是:

RewriteRule ^dev/cserv/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([0-9]+)/?$ /dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4&service=$5 [L]

此处进行测试

It's because ([^/\.]+) Matches the '.' in 1.8-HDi as the end of one of the fragments. The rule should be:

RewriteRule ^dev/cserv/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([0-9]+)/?$ /dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4&service=$5 [L]

Tested HERE

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文