我正在使用Apache 2.4.7
。我使用mod_rewrite
来改变一些网址。我想将http://example.com/servicename/oldpage?id=abc
改写为http://example.com/servicename/newpage
。Apache2:重写包含问号的网址
其他类似的改写所以我相信?
里面的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 "?"但我没有设法让他们工作。
如何重写包含问号的网址?
编辑:我试过在Match Question Mark in mod_rewrite rule regex给出的解决方案,但无法让他们为我工作。这个问题是关于重写时保留查询字符串,而我想在重写时删除它。
你想重写依赖于'ID ='查询字符串的内容,或者你只是需要从请求发送到NEWPAGE删除吗? –
我想将其删除,而不是关心其内容。 –
[在mod \ _rewrite规则正则表达式中匹配问号]的可能重复(http://stackoverflow.com/questions/822421/match-question-mark-in-mod-rewrite-rule-regex) –