【发布时间】:2015-07-05 02:20:02
【问题描述】:
我正在尝试通过 .htaccess 文件在我的 url 中添加一个参数。我有 5 个参数,3 个 int,1 个 float(例如 3.5)和一个字符串。
有4个参数,不带字符串,效果很好;但是如果我尝试添加第五个参数,则它的 get 变量将采用第四个参数(浮点数)的小数部分。
我不明白为什么。这是具有 4 个参数的 htaccess 行:
RewriteRule sedi/([0-9]+)/ripetizioni/filtra/([0-9]+)&([0-9]+)&([0-9](.[0-9])?)$ tutor.php?id=$1&p=$2&z=$3&v=$4 [L]
相反,当我添加第五个参数时,该行变为:
RewriteRule sedi/([0-9]+)/ripetizioni/filtra/([0-9]+)&([0-9]+)&([0-9](.[0-9])?)&([A-Za-z0-9-]+)$ tutor.php?id=$1&p=$2&z=$3&v=$4&search=$5 [L]
例如,如果搜索是“数学”并且v是3.5,则url正确,但搜索的get变量需要.5
【问题讨论】:
-
你为什么要把你的浮点数分成两个变量?
-
@jeroen 浮点变量未拆分。它可以是单个变量,带有可选的小数部分。
-
当您使用括号时,如果它在第五个参数中,您将捕获该值。您应该使用非捕获括号或仅使用
[.\d]表示整数。 -
@jeroen 喜欢下面hjpotter92 的建议吗?
标签: .htaccess mod-rewrite url-rewriting friendly-url