2012-04-18 136 views
6

这样的想法是从像这样每个页面中删除扩展名为.html ...URL重写 - 删除扩展名为.html

www.website.com/File.html > www.website.com/File 
www.website.com/Folder/File.html > www.website.com/Folder/File 

现在我已经成功使用URL重写要做到这一点,但它意味着必须为每个页面重写一遍,如果该网站超过20页,这将非常耗时,效率不高并且不切实际。

有没有办法通过在web.config中只写入一个或两个重写来做到这一点?

+0

我也想知道!帮助SO用户UNITE! – 2012-04-18 14:22:39

回答

9

该方案最终为我工作:

<rule name="RedirectUserFriendlyURL1" stopProcessing="true"> 
    <match url="^(.*)\.(.*)$" /> 
    <conditions> 
     <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="{R:1}" appendQueryString="false" /> 
</rule> 
<rule name="RewriteUserFriendlyURL1" stopProcessing="true"> 
    <match url="^(.*)$" /> 
    <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="{R:1}.(.*)" /> 
</rule> 
+0

不错的一个Ryano!我会为您投票 - 但我们已被告知过去投票... – 2012-04-18 14:36:22

+3

不幸的是,这也会删除.css,.js和其他扩展程序 – CarneyCode 2016-01-09 15:13:05