【发布时间】:2018-04-30 04:31:17
【问题描述】:
我们遇到了一个问题,即某个软件想要打开一个网页到一个不再存在的服务器,而替换服务器使用不同的 URL 结构。
我的任务是为此实施解决方案,并且一直在研究 Apache 重定向。这是在使用 RHEL 附带的 Apache v2.4.6 的 RHEL 7.5 VM 上运行的。
到目前为止,我的配置如下:
重写引擎开启 RewriteRule "^/wp2/geoviewer-prod/wpc.jsp?latitude=(.*)&longitude=(.*)&scale=(.*)" "http://newserver/server/#/map/$1,$2, 19z" [B,PT,NE,R=301,L] 重写引擎关闭在我看到的 Apache access_log 文件中:
192.168.249.30 - - [30/Apr/2018:12:12:07 +0800] "GET /wp2/geoviewer-prod/wpc.jsp?latitude=-2.2&longitude=4.4&scale=3000000 HTTP/1.1" 304 - " -" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"浏览器永远不会转到新服务器。
任何想法我做错了什么?
谢谢
已编辑:从“code”更改为“pre”标签,现在可以正确显示。
EDIT2:我已将 Apache 日志记录提高到 11,并且日志中没有提到“重写”。
【问题讨论】:
-
你的正则表达式错误。问号需要转义,
(.)仅表示一个字符,因此它永远不会匹配-2.2。可能会出现更多错误。 -
抱歉,我使用的是 CODE 标签,配置显示不正确。现已修复。
-
您的问号仍然需要转义。确保您的正则表达式正确的最佳方法是在regex101.com 之类的工具中对其进行测试,以在拒绝 apache 故障之前消除任何正则表达式问题。
-
我避开了问号,但没有任何改变。