我在.htaccess文件中遵循了两条规则 -
1. RewriteRule ^myscript/([A-Za-z0-9]{0,1})\?page=([0-9]?)$ /myscript.php?action=check&var=$1&page=$2 [L]
2. RewriteRule ^myscript/([A-Za-z0-9]{0,1})$ /myscript.php?action=check&var=$1 [L]
以便visitng /myscript/d
以/myscript.php?action=check&var=d
的形式发送请求
我正在尝试添加一个选项页面参数,以便visit / myscript / d?page = 5将请求发送为/myscript.php?action=check&var=d&page=5
实现这个我试过这个
RewriteRule ^myscript/([A-Za-z0-9]{0,1})\?page=([0-9]?)$ /myscript.php?action=check&var=$1&page=$2 [L]
但是这个规则被忽略,请求以/myscript.php?action=check&var=d发送(即上面的第二条规则正在应用)。我在这做错了什么?我需要做些什么改变才能让它发挥作用?
感谢您的帮助。
答案 0 :(得分:1)
仅使用第二条规则并添加QSA
标志:
RewriteRule ^myscript/([A-Za-z0-9]{0,1})$ /myscript.php?action=check&var=$1 [QSA,L]
这会将现有查询参数传递给新网址:
/myscript/d?page=5&say=hello
=>
/myscript.php?action=check&var=d&page=5&say=hello
Apache文档: http://httpd.apache.org/docs/current/rewrite/flags.html#flag_qsa