本文主要是介绍Apache Rewrite如何传递GET参数的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
应用场景:
在RewriteRule中,如果规则中没有重写GET参数,原有的GET参数是可以直接传递的;但如果在重写时定义了其他的GET参数,则原有的GET参数就都没了:
RewriteRule ^([0-9a-zA-Z]+) /index.php?alias=$1
上面的代码会将url重写到index.php下,这时如果在用户名后有GET参数,如&id=$id,那么在index.php中只能得到$_GET['alias'],而无法获取到$_GET['id']
解决方案:
若需要传递原有的GET参数,不必用正则去写RewriteRule,直接使用%{QUERY_STRING}就可以获取原有的所有参数:
RewriteRule ^([0-9a-zA-Z]+) /index.php?alias=$1&%{QUERY_STRING}
<VirtualHost *:8080>
ServerName www.hufu.com
DocumentRoot "D:/www/hufu/"
RewriteEngine on
RewriteRule ^/([a-z]+)/([a-z]+).html$ /?m=$1&c=$2&%{QUERY_STRING} [PT]
</VirtualHost>
这篇关于Apache Rewrite如何传递GET参数的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!