Rewrite rules for IIS web server inside a web.config file
I am going to show you the entire XML file upfront and then break down the important parts that make the magic happen. With that said, here is the XML file:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="profileurl1" enabled="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="index.php?page=profile&user={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
The first important part is the "rule" element. Everything inside the opening and closing tags of this element describe what your rule does.
<rule name="profileurl1" enabled="true">
</rule>
The next child element is the start of our rule. The "match" element tells the server to match any character found in your website's URLs filename.
<match url="^([^/]+)/?$" />
Next we have the "conditions" element that lets the web server know what not to rewrite. That being if the requested filename is a file or a directory, do not rewrite the URL.
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?page=profile&user={R:1}" />
In my next post I will show you how to do a simple redirect rule. Note: This XML file must be named web.config and be in the directory where you want the rules to be applied.
Comments
Post a Comment