6

所以想法是像这样从每个页面中删除 .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 中只写一两个重写来做到这一点?

4

3 回答 3

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> 
于 2012-04-18T14:35:47.133 回答
0

使用 IIS 7.x 的重写模块:
http ://www.techrepublic.com/blog/webmaster/url-rewriting-with-iiss-url-rewrite-module/710

虽然我已经尝试过了,但我从来没有得到真正的规则集来自动执行它,而没有每个页面名称的规则。

对任何可以阐明这一点的人+1!

于 2012-04-18T14:11:29.840 回答
0

在此处永久添加使用 Web 配置删除 HTML 扩展的答案。这对我来说非常有效,使用 URL Rewrite 2.1 模块。您将其编辑到 applicationHost.config 文件中。感谢https://stackoverflow.com/users/1821692/feeeper

<rewrite>
    <rules>
        <rule name="Hide .html ext">
            <match ignoreCase="true" url="^(.*)"/>
            <conditions>
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                <add input="{REQUEST_FILENAME}.html" matchType="IsFile"/>
            </conditions>
            <action type="Rewrite" url="{R:0}.html"/>
        </rule>
        <rule name="Redirecting .html ext" stopProcessing="true">
            <match url="^(.*).html"/>
            <conditions logicalGrouping="MatchAny">
                <add input="{URL}" pattern="(.*).html"/>
            </conditions>
            <action type="Redirect" url="{R:1}"/>
        </rule>
    </rules>
</rewrite>
于 2019-12-15T18:44:57.290 回答