【发布时间】:2015-06-23 15:20:08
【问题描述】:
我已经尝试了很多天来做到这一点,但仍然不知何故无济于事。让我发疯。好像应该比较容易......
我需要将旧应用程序的流量重写为新应用程序,但传递的值的格式不同。
这:
http://oldapp.com/download.aspx?filename=FILE-01.pdf
必须重写为:
https://NEWapp.com/this/that/FILE-01.pdf
所以我必须从 QUERY_STRING 中提取值,在本例中为 FILE-01.pdf,并将其合并到新 URL 中。 QUERY_STRING 中始终只有一个名称/值对,并且始终为“download.aspx?filename=”。
看起来很简单,对吧?但我一直想念它。我已经尝试了很多很多变体:
RewriteEngine On
RewriteCond %{QUERY_STRING} filename=([\S\s]+)
RewriteRule ^(.*)$ https://NEWapp.com/this/that/$1 [R,L]
我正在使用 IBM HTTP Server v8.0,它基本上是 Apache 2.2。
解决方案:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^filename=([^&]+)
RewriteRule ^(.*)$ https://NEWapp.com/this/that/%1? [R,L]
【问题讨论】:
标签: apache mod-rewrite query-string