Exp*_*lls 5 apache .htaccess mod-rewrite
我不明白为什么我总是有重写规则这么大的问题,但我只想附加查询字符串,如果它存在,并添加一个?如果它不存在.我实际上并不关心浏览器中是否更改了URL - 它只需要加载正确的目标页面.
RewriteRule /cia16(.*)\?(.*) /cia$1?$2&CIA=16
RewriteRule /cia16(.*) /cia/$1?CIA=16
Run Code Online (Sandbox Code Playgroud)
如果我去/cia16/steps.php?page=1它实际上被重写/cia/steps.php?CIA=16- 这似乎接受查询字符串部分甚至不被认为是重写目的的URL的一部分.
我需要做些什么才能使重写与现有查询字符串一起正常工作?
Jon*_*Lin 11
您无法匹配a中的查询字符串RewriteRule,您需要匹配a中的%{QUERY_STRING}变量RewriteCond.但是,如果您只想附加查询字符串,则只需使用该QSA标志:
RewriteRule /cia16(.*) /cia/$1?CIA=16 [QSA]
Run Code Online (Sandbox Code Playgroud)
URI:/cia16/steps.php?page=1将被重写为/cia/steps.php?CIA=16&page=1.如果由于某种原因,你需要在page=1 之前的CIA=16,那么你可以做这样的事情:
RewriteRule /cia16(.*) /cia/$1?%{QUERY_STRING}&CIA=16
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10455 次 |
| 最近记录: |