如何让这个mod重写

发布于 2024-09-29 12:20:10 字数 457 浏览 0 评论 0原文

这让我发疯,这应该很容易,但我不能...

我需要重写这样的 URL:

www.domain.com/foo/bar/more/evenmore.htm
www.domain.com/foo/bar/more.htm
www.domain.com/foo/bar.htm
www.domain.com/foo.htm

进入:

www.domain.com/?var1=foo&var2=bar&var3=more&var4=evenmore
www.domain.com/?var1=foo&var2=bar&var3=more
www.domain.com/?var1=foo&var2=bar
www.domain.com/?var1=foo

变量值可能包含 [az] [AZ] [0-9] - _

This drives me crazy, it should be easy but I can't...

I need to rewrite URLs like this ones:

www.domain.com/foo/bar/more/evenmore.htm
www.domain.com/foo/bar/more.htm
www.domain.com/foo/bar.htm
www.domain.com/foo.htm

into:

www.domain.com/?var1=foo&var2=bar&var3=more&var4=evenmore
www.domain.com/?var1=foo&var2=bar&var3=more
www.domain.com/?var1=foo&var2=bar
www.domain.com/?var1=foo

variable values may contain [a-z] [A-Z] [0-9] - _

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

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

发布评论

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

评论(1

圈圈圆圆圈圈 2024-10-06 12:20:10

我认为没有一种干净的方法可以做到这一点;我相信您需要为路径中的每个可能元素使用一个规则。例如:

^([^\/]*)\/([^\/]*)\/([^\/]*)\/(.*).htm$ ?var1=$1&var2=$2&var3=$3&var4=$4 [L]
^([^\/]*)\/([^\/]*)\/(.*).htm$           ?var1=$1&var2=$2&var3=$3 [L]
^([^\/]*)\/(.*).htm$                     ?var1=$1&var2=$2 [L]
^([^\/]*).htm$                           ?var1=$1 [L]

您最多可以添加九个规则,因为(据我所知)mod_rewrite 限制为 $1 到 $9 作为替换参数。

I don't think there's a single clean way to do it; I believe you need to use one rule per number of possible elements in the path. For example:

^([^\/]*)\/([^\/]*)\/([^\/]*)\/(.*).htm$ ?var1=$1&var2=$2&var3=$3&var4=$4 [L]
^([^\/]*)\/([^\/]*)\/(.*).htm$           ?var1=$1&var2=$2&var3=$3 [L]
^([^\/]*)\/(.*).htm$                     ?var1=$1&var2=$2 [L]
^([^\/]*).htm$                           ?var1=$1 [L]

You can add up to nine rules, because (AFAIK) mod_rewrite is limited to $1 through $9 as substitution parameters.

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