现有表单规则:
/index.php? m=searchc=indexs=1t=1k=关键字
我想以伪静态的形式将路径传输到
/search s=1t=1k=关键字
只能通过以下方法获取一个参数值
RewriteCond %{QUERY_STRING} ^k=(.) $
RewriteRule ^search$ /index.php? m=searchc=index.k=%1
如果以以下方式获取多个参数,则参数的顺序是固定的,如果调换顺序则不行
RewriteCond %{QUERY_STRING} ^k=(.) s=).(c=).) $
RewriteRule ^search$ /index.php? m=searchc=index.k=%1s=,=%3
如果使用以下方式,则存在安全隐患,无法限制参数的个数
RewriteRule ^search$ /index.php? m=searchc=index [L,QSA]
大神们有什么好的解决办法吗?
回复内容:
现有表单规则:
/index.php? m=searchc=indexs=1t=1k=关键字
希望以伪静态形式将路径传输到
/search s=1t=1k=关键字
使用以下方法只能获取一个参数值
RewriteCond %{QUERY_STRING} ^k=(.) $
RewriteRule ^search$ /index.php? m=searchc=index.k=%1
通过以下方式获取多个参数时,参数的顺序是固定的,如果调换顺序就不行了
RewriteCond %{QUERY_STRING} ^k=(.) s=).) c=).) $
RewriteRule ^search$ /index.php? m=searchc=index.k=%1s=,=%3
如果使用以下方式,则存在安全隐患,无法限制参数的个数
RewriteRule ^search$ /index.php? m=searchc=index [L,QSA]
大神们有什么好的解决办法吗?
将k s c等参数设为正规一致。 例如,如下
rewritecond % { query _ string } ^ ([ a-z ]=).([ a-z ]=(.) ([ a-z ]=).) ) ) ) ) )
RewriteRule ^search$ /index.php? m=searchc=index . %1=%2%3=%4%5=% 6
本文原创发布了php中文网。 转载请注明出处。 谢谢您的尊重。