Removing index.cfm From Mura CMS URLs on Windows/IIS7
If you have an installation of Mura CMS on Windows running IIS7+ and you're looking to remove "index.cfm" from the URL for search engine optimization (SEO) or any other reason, then here's a pretty simple and painless method to do just that.
First, IIS7 does not have their URL Rewrite Module installed by default. So you'll need to download and install URL Rewrite Module 2.0 for your server (x86 / x64).
After that's done, your next decision is to choose whether or not you wish to have the SiteID display in the URL. Some users prefer to have that, and some don't depending on their particular usage of Mura.
Option 1: Allow For Missing SiteID AND index.cfm From The URL
Create a "web.config" file with the following code and place it at the root of your Mura installation:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Mura CMS Rewrite Option 1" enabled="true">
<match url="^([a-zA-Z0-9/-]+)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{DOCUMENT_ROOT}{URL}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="/index.cfm{URL}" />
</rule>
</rules>
</rewrite>
<defaultDocument>
<files>
<remove value="index.cfm" />
<add value="index.cfm" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
Then, update your settings.ini.cfm file with the following settings and from the Admin > Reload Application:
indexfileinurls=0
Option 2: Allow For Missing index.cfm From The URL, But Keep SiteID
Create a "web.config" file with the following code and place it at the root of your Mura installation:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Mura CMS Rewrite Option 2" enabled="true">
<match url="^([a-zA-Z0-9-]{1,})/([a-zA-Z0-9/-]+)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{DOCUMENT_ROOT}{URL}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="/{R:1}/index.cfm/{R:2}" />
</rule>
</rules>
</rewrite>
<defaultDocument>
<files>
<remove value="index.cfm" />
<add value="index.cfm" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
Then, update your settings.ini.cfm file with the following settings and from the Admin > Reload Application:
indexfileinurls=0
Your site should now be able to handle URLs that are missing index.cfm.
Cheers!