URL Rewrite - Remove .html extension
10,557
This solution worked for me in the end:
<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>
Comments
-
Ryano almost 2 years
So the idea is to remove the .html extension from each page like so...
www.website.com/File.html > www.website.com/File www.website.com/Folder/File.html > www.website.com/Folder/File
Now I've managed to do this using a URL Rewrite, but it means having to write a rewrite for each page, which is time consuming, not efficient and impractical say if the website is more than 20 pages.
Is there a way to do this by writing just one or two rewrites in the web.config?
-
Barrie Reader about 12 yearsNice one Ryano! I would vote you up - but we have been told off about voting up in the past...
-
Phil C over 8 yearsUnfortunately, this also removes .css, .js, and other extensions
-
Jon R over 3 yearsImproved my answer at: stackoverflow.com/a/62501711/12508260