[英]How do I change the following rules to work with URL rewrite 2.0 and IIS 7.0
我有这样的网址:
/eng/myfolder/mycategory.aspx
我想将其转换为:
index.aspx?FolderId = 2&LanguageId = 1&CategoryID = 12
一句话,我想“写”那个,
eng => languageId = 2和myfolder => FolderId = 2和mycategory .....
我不知道我是否清楚
谢谢。
使用http://mywebsite.com/fr/default
现在我有:
<add key = "/en/default" value = "default.aspx?LanguageId=1" />
<add input = " {Rewrite:{REQUEST_URI}}" pattern = "default.aspx\?(.+)" />
<action type="rewrite" url="default.aspx?{C:1}" appendQueryString="False" />
但是我想要更全球化的东西:
<add key = "/en" value = "LanguageId=1" />
<add input = " {Rewrite:{REQUEST_URI}}" pattern = "(.+)" />
< action type="rewrite" url="default.aspx?{C:1}" appendQueryString="False" />
我就是这样做的,基本上是创建三个地图,一个用于语言,文件夹和类别。 如果它们具有大数据集并且可能经常更改,那么我将考虑使用C#内置的自定义提供程序,但现在仅:
<configuration>
<system.webServer>
<rewrite>
<rewriteMaps>
<rewriteMap name="Folders">
<add key="myfolder" value="2" />
<add key="anotherfolder" value="3" />
</rewriteMap>
<rewriteMap name="Languages">
<add key="eng" value="2" />
<add key="spa" value="1" />
</rewriteMap>
<rewriteMap name="Categories">
<add key="mycategory" value="12" />
<add key="anothercategory" value="10" />
</rewriteMap>
</rewriteMaps>
<rules>
<rule name="RewriteURLs" stopProcessing="true">
<match url="([^/]+)/([^/]+)/(.+?)\.aspx" />
<action type="Rewrite" url="/index.aspx?FolderId={Folders:{R:2}}&languageid={Languages:{R:1}}&CategoryID={Categories:{R:3}}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.