6

したがって、各ページから.html拡張子を次のように削除するという考えです...

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

URL書き換えを使用してこれを行うことができましたが、ページごとに書き換えを作成する必要があり、時間がかかり、Webサイトが20ページを超える場合は非効率的で実用的ではありません.

web.config に 1 つまたは 2 つの書き換えを書き込むだけでこれを行う方法はありますか?

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 に答える