Is可以在 applying 之后访问RewriteCond 中修改的查询字符串?
我想申请的是..。
RewriteCond %{QUERY_STRING} ^(.*)&?id=([^&]+)&?(.*)$ [NC]
RewriteRule ^/app\.jsp$ /app/%2?%1%3 [R=302]..。将以下urls重写为“很好”的urls。这已经起作用了,但是对于(2)和(3)仍然有不必要的尾随“?以及我想删除的"%“字符:
/app.jsp?id=123&b=1 -> /app/123?b=1 (1)
/app.jsp?id=123 -> /app/123? (2)
/app.jsp?b=1&id=123 -> /app/123?b=1& (3)我的想法是添加额外的条件重写规则,以删除尾随"?“以及修改后的查询字符串中的"%“字符,但我不知道如何在随后的RewriteCond中访问后者。谢谢您的任何提示。
发布于 2022-06-02 16:28:06
好吧,我自己找到了一个简单的解决方案:
RewriteCond %{QUERY_STRING} ^()id=([^&]+)(.*)$ [NC,OR]
RewriteCond \?%{QUERY_STRING} ^(\?.*)&id=([^&]+)(.*)$ [NC]
RewriteRule ^/app\.jsp$ /app/%2%1%3 [R=302,QSD,L]重写结果:
/app.jsp?id=123&b=1 -> /app/123?b=1 (1)
/app.jsp?id=123 -> /app/123 (2)
/app.jsp?b=1&id=123 -> /app/123?b=1 (3)
/app.jsp?b=1&id=123&d=2 -> /app/123?b=1&d=2 (4)几点意见:
https://serverfault.com/questions/1102295
复制相似问题