首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在*应用RewriteCond *之后访问RewriteRule *中修改过的查询字符串?

问是否可以在*应用RewriteCond *之后访问RewriteRule *中修改过的查询字符串?
EN

Server Fault用户
提问于 2022-06-02 06:58:01
回答 1查看 137关注 0票数 0

Is可以在 applying 之后访问RewriteCond 中修改的查询字符串?

我想申请的是..。

代码语言:javascript
复制
RewriteCond %{QUERY_STRING} ^(.*)&?id=([^&]+)&?(.*)$ [NC]
RewriteRule ^/app\.jsp$ /app/%2?%1%3 [R=302]

..。将以下urls重写为“很好”的urls。这已经起作用了,但是对于(2)和(3)仍然有不必要的尾随“?以及我想删除的"%“字符:

代码语言:javascript
复制
/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中访问后者。谢谢您的任何提示。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-06-02 16:28:06

好吧,我自己找到了一个简单的解决方案:

代码语言:javascript
复制
RewriteCond   %{QUERY_STRING}       ^()id=([^&]+)(.*)$  [NC,OR]
RewriteCond \?%{QUERY_STRING}  ^(\?.*)&id=([^&]+)(.*)$  [NC]
RewriteRule ^/app\.jsp$ /app/%2%1%3                     [R=302,QSD,L]

重写结果:

代码语言:javascript
复制
/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)

几点意见:

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1102295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档