用多个查询字符串和非固定数量的值重写

问题描述 投票:0回答:0

我需要重定向一个值不固定的 URL。

这是网址:

https://test.example.com/navigator/viewer?indexclass=xImgTX&businessunit=TX&documents=DOC1~DOC22~DOC1122

businessunit=参数可以是任意字符串,本例为tx,也可以是canj

documents=参数,是一个棘手的参数....根据请求,可以有1个值(文档)或多个值(多个文档最多20个文档)由(波浪号)分隔。

现在使用上面的例子与 documents= 有多个值,它将被重定向到

https://dev1.example.com/imgclient/ImageServlet?fsserver=filenet&documents=tx~DOC1|tx~DOCS22|tx~DOC1122

因此重定向 URL 中的文档将由 |tx~(或 businessunit= 的任何值)分隔,这也增加了复杂性。

我可以用一份文件重定向,但如果它要求多份文件,我会很挣扎。

RewriteCond %{QUERY_STRING} ^indexclass=([a-zA-Z0-9-]+)&businessunit=([a-zA-Z0-9-]+)&documents=([a-zA-Z0-9-]+)$ 
RewriteRule ^/navigator/viewer$ https://dev1.example.com/imgclient/ImageServlet?fsserver=filenet&documents=%2~%3 [NC,R=302,L]
regex apache perl mod-rewrite
© www.soinside.com 2019 - 2024. All rights reserved.