如何使用Web.config将URL指向某些页面?

时间:2014-08-13 19:09:09

标签: asp.net web-config

我之前从未编写过Web.config文件,并注意到我无法使用.htaccess。我相信,我想做的事情相当容易。我试图将一组URL指向某些页面和/或与设置虚荣URL交叉。以下是我需要的例子:

www.mysite.com/test - 这未能访问www.mysite.com/test/,最后的斜线使其工作。所以我希望它在没有它的情况下工作。

www.mysite.com/test |让它工作

www.mysite.com/test/index.aspx |去| www.mysite.com/test

www.mysite.com/test/page2.aspx |去| www.mysite.com/page2(只有页面存在 - 没有文件夹 - 如果可能的话就像虚荣一样)

不确定如何写这个,但正在尝试......

 <configuration>
  <location path="index.aspx">
     <system.webServer>
         <httpRedirect enabled="true" destination="www.mysite.com/test" httpResponseStatus="Permanent" />
     </system.webServer>
   </location>
 </configuration>

1 个答案:

答案 0 :(得分:0)

听起来你正在寻找重写网址。我不是在起诉我完全理解你所追求的是什么,但是看完a few examples之后应该非常简单。例如:

/test/index.aspx - &gt; / test /可以写成:

<system.webServer>
    <rewrite>
        <rules>
            <!-- /test/index.aspx to /test/ -->
            <rule name="test index" stopProcessing="true">
                <match url="^test\/index\.aspx$" />
                <action type="Rewrite" url="/test/" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

如果您更喜欢301 Permanent Redirect更改type="Redirect"而不是重写。

同样适用于特定页面:

<system.webServer>
    <rewrite>
        <rules>
            <!-- /test/page1.aspx to /page1 -->
            <rule name="test pages" stopProcessing="true">
                <match url="^test/(page\d+)\.aspx$" />
                <action type="Rewrite" url="/{R:1}" /> <!-- {r:1} is the "PageN" portion -->
            </rule>
        </rules>
    </rewrite>
</system.webServer>