2010-07-01 13 views
1

我有这样的一个网址:如何更改下面的规则与URL工作改写2.0和IIS 7.0

/eng/myfolder/mycategory.aspx

我想的东西改造它像:

的Index.aspx FolderId = 2 & LanguageId = 1 &类别ID = 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" /> 

回答

1

这是我会怎么做,基本上创建三个地图,一个用于语言,文件夹和cateogories。如果他们有大量数据集并且可能频繁更改,那么我会考虑使用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}}&amp;languageid={Languages:{R:1}}&amp;CategoryID={Categories:{R:3}}" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 
+0

非常感谢! 这正是我正在寻找的 – grogoin 2010-07-02 10:16:53