根据此维基 - https://wiki.apache.org/httpd/RewritePathInfo - 它显示了如何将URL路径更改为查询字符串:
RewriteEngine On
RewriteRule ^/blah/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/? \
/blah.php?arg1=$1&arg2=$2&arg3=$3&arg4=$4 [PT]
此方法要求您预测确切的数量,因此如果5个值有5个级别:
/blah/1/2/3/4/5/
翻译为
blah.php?var1=1&var2=2&var3=3&var4=4&var5=5
有没有办法在不知道变量数量的情况下做到这一点,几乎是动态的?
例如,有一天用户可能会输入7,另一天1,另一天9和ReWrite Regex能够全部处理它们吗?
答案 0 :(得分:3)
要使其完全动态,您不应该打扰将PATH信息分解为多个查询参数。只需将blah/
之后的所有内容传递到您的php文件,然后让php在/
上进行拆分。所以你可以使用这个规则:
Options -MultiViews
RewriteEngine On
RewriteRule ^/?(blah)/(.+)$ $1.php?path=$2 [L,QSA,NC]