我们遇到一个问题,即某个软件想要将网页打开到不再存在的服务器,并且替换服务器使用不同的URL结构。
我的任务是实施解决方案,并一直关注Apache重定向。这是使用RHEL附带的Apache v2.4.6在RHEL 7.5 VM上运行。
到目前为止,我的配置如下:
RewriteEngine on RewriteRule "^/wp2/geoviewer-prod/wpc.jsp?latitude=(.*)&longitude=(.*)&scale=(.*)" "http://newserver/server/#/map/$1,$2,19z" [B,PT,NE,R=301,L] RewriteEngine off
在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"
浏览器永远不会进入新服务器。
任何想法我做错了什么?
由于
已编辑:更改为"代码"到"前"标签及其现在正确显示。
EDIT2:我已经将Apache的日志记录提高到了11,而且没有提及“重写”#39;在日志中。
答案 0 :(得分:0)
在VirtualHost上下文中,RewriteRule
模式将与主机名和端口之后以及查询字符串之后的URL部分进行匹配。
如果您希望与查询字符串匹配,请使用带有RewriteCond
变量的%{QUERY_STRING}
。尝试这样的事情:
RewriteEngine on
RewriteCond %{QUERY_STRING} latitude=(.*)&longitude=(.*)&scale=(.*)
RewriteRule ^/wp2/geoviewer-prod/wpc.jsp http://newserver/server/#/map/%1,%2,19z [B,PT,NE,R=301,L]
#RewriteEngine off