首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache2:重写包含问号的url

问Apache2:重写包含问号的url
EN

Stack Overflow用户
提问于 2016-05-30 11:00:11
回答 1查看 663关注 0票数 1

我正在使用Apache 2.4.7。我使用mod_rewrite来修改一些urls。

我想把http://example.com/servicename/oldpage?id=abc重写为http://example.com/servicename/newpage。

其他类似的重写工作,所以我相信在url中的?正在引起问题。我试过用\来逃避它。

这是因为url中没有?:

RewriteRule ^/servicename/old /servicename/new

但这些都没用:

RewriteRule ^/servicename/oldpage?id=abc /servicename/newpage

RewriteRule ^/servicename/oldpage\?id=abc /servicename/newpage

我也尝试过使用RewriteCond的例子,例如:.htaccess rewrite URL with a question mark "?",但我没有设法让它们正常工作。

应该如何重写包含问号的url?

编辑:我尝试了用rewrite rule regex给出的解决方案,但无法让它们为我工作。这个问题是关于在重写时保留查询字符串,而我想在重写时删除它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-30 12:02:25

RewriteRule模式与URL中主机名和端口之后以及查询字符串之前的部分匹配。

当请求的URI包含查询字符串,而目标URI不包含时,RewriteRule的默认行为是将该查询字符串复制到目标URI。使用QSD标志将导致丢弃查询字符串。

因此,这应该是可行的:

代码语言:javascript
复制
RewriteRule ^/servicename/oldpage /servicename/newpage [QSD]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37524006

复制
相关文章

相似问题

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