将查询string追加到csv文件映射中
例如,
假设我想访问url:
mydomain.com/sheet.csv?z=abcdefg
它查看或下载包含数据集abcdefg的文件sheet.csv
然后说我访问的url:
mydomain.com/sheet.csv?z=hijklmn
那么它将查看或下载包含数据集hijklmn的文件sheet.csv
查询string参数本身不做任何事情。 它们只是名称/值对,可以被您正试图请求的端点(http动词GET)parsing和使用。
因此,除非您的sheet.csv实际上是一个程序或一个模糊的API端点,否则将无法将用户redirect到不同的url。 为此,您需要使用重写模块或其他服务器端程序来捕获查询string中的信息,构build新的url并redirect用户的浏览器。
正如Mark Setchell在上面的评论中提到的,关于apache重写模块的信息可以在httpd.apache.org/docs/2.0/misc/rewriteguide.htmlfind。
如果使用这个,规则是
RewriteRule ^sheet.csv?z=([_0-9a-z-]+) /$1/sheet.csv [R]
如果您使用的是IIS7 +,则有一个URL重写模块,可以将其configuration为更改传入的urlstring以匹配您尝试redirect到的模式。
基本上,你告诉IIS注意模式“^ sheet.csv?z = ([_0-9a-z – ] +) ”
如果find,则将用户反弹为“ {R:1} /sheet.csv”
{R:1}部分是由模式正则expression式的括号定义的dynamicvariables。
因此,重写规则将在web.config文件中看起来像这样。
<rewrite> <rules> <rule name="Rewrite for sheet.cvs"> <match url="^sheet.csv?z=([_0-9a-z-]+)" /> <action type="Rewrite" url="{R:1}/sheet.csv" /> </rule> </rules> </rewrite>