【发布时间】:2015-01-08 20:00:43
【问题描述】:
我正在尝试为以下条件创建 Apache 重写规则:
原始网址: https://somewebsite.com/GCSWEB/runSavedReport.do?mode=excel&reportID=40678 新网址: https://somewebsite.com/demo/runSavedReport.do?mode=excel&reportID=40678
因此,只有在请求 /runSavedReport.do?mode=excel&reportID=xxxxx 时,/GCSWEB 网络路径才会被 /demo 替换。 URL 的所有其他部分将保持不变。我编写了以下代码,但它不起作用:
RewriteRule ^/GCSWEB/runSavedReport\.do\?mode=excel\&reportID=([0-9]+)$ https://somewebsite.com/demo/runSavedReport.do?mode=excel&reportID=$1 [R=301,L]
同样重要的是要注意我有另一个运行良好的现有规则,它将对 /GCSWEB/xxxx/xxx 的任何请求重定向到 /demo。但是,如果调用上面的特定 URL,我希望这个新规则覆盖现有规则。任何其他 URL 将下拉到现有规则并被重定向到简单的 /demo(没有其他添加到 URL)。现有规则如下所示:
RewriteRule ^/GCSWEB/(.*) https://somewebsite.com/demo/? [R=301,L]
整天都在研究新规则,但没有成功。我什至尝试删除现有规则,认为可能存在一些冲突,但这没有帮助。
【问题讨论】:
标签: apache mod-rewrite redirect