Enabling Search Engine Friendly (SEF) URLs on IIS
m |
|||
| Line 72: | Line 72: | ||
Tested and working with sh404SEF: | Tested and working with sh404SEF: | ||
<source lang="apache"> | <source lang="apache"> | ||
| − | RewriteCond %{HTTP_URL} (/|\.htm|\.php|\.html|/[^.]*)$ | + | RewriteLogLevel 4 #Make it 0 in to turn debugging off |
| − | + | RewriteLog c:\IIRfLogfile.log #Write the absolute path of your file here | |
| + | |||
| + | MaxMatchCount 10 | ||
| + | |||
| + | # don't rewrite any request that goes to administrator | ||
| + | RewriteRule ^/administrator - [L] | ||
| + | |||
| + | RewriteCond %{HTTP_URL} (/|\.htm|\.php|\.html|!administrator|/[^.]*)$ | ||
RewriteCond %{REQUEST_FILENAME} !-f | RewriteCond %{REQUEST_FILENAME} !-f | ||
RewriteCond %{REQUEST_FILENAME} !-d | RewriteCond %{REQUEST_FILENAME} !-d | ||
Revision as of 11:00, 9 July 2009
Helicon ISAPI Rewrite 3 located at http://www.helicontech.com/isapi_rewrite/ now provides near identical mod_rewrite functionality.
The default rewrite rules can be used and the following code inserted to the top of the index.php file:
if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; }
First job is to install ISAPI rewriter of your choice http://www.isapirewrite.com/ or http://cheeso.members.winisp.net/IIRF.aspx
ISAPI ReWrite has a lite version (limited) and IIRF (IonicIsapiRewriter) is freeware always updated and the source is free!
Both are configured via file IsapiRewrite4.ini (you dont need to worry about .htaccess.txt ignore it).
The following entries for ISAPI REWRITE:
RewriteLog D:\temp\iirfLog.out RewriteLogLevel 3 IterationLimit 10 # Joomla/Mambo rewrite rules RewriteRule ^/$ /index.php RewriteRule ^/content/blogsection/([^/]+)/([^/]+)/ /index.php?option=com_content&task=blogsection&id=$1&Itemid=$2 RewriteRule ^/content/blogcategory/([^/]+)/([^/]+)/ /index.php?option=com_content&task=blogcategory&id=$1&Itemid=$2 RewriteRule ^/content/section/([^/]+)/([^/]+)/ /index.php?option=com_content&task=section&id=$1&Itemid=$2 RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+) /index.php?option=$1&$2=$3&$4=$5&$6=$7 RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+) /index.php?option=$1&$2=$3&$4=$5 RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/ /index.php?option=$1&$2=$3 RewriteRule ^/content/category/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=category§ionid=$1=&id=$2&Itemid=$3 RewriteRule ^/content/view/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=view&id=$1&Itemid=$2&limit=$3&limitstart=$4 RewriteRule ^/content/view/([^/]+)/([^/]+)/ /index.php?option=com_content&task=view&id=$1&Itemid=$2
The following is for IonicIsapiRewriter:
IterationLimit 10Tested and working with ARTIO JoomSEF:
RewriteCond %{HTTP_URL} (/|\.htm|\.php|\.html|/[^.]*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) /index.php [U,L]RewriteCond %{HTTP_URL} (/|\.htm|\.php|\.html|/[^.]*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) /index.php [U,L] MaxMatchCount 10
Tested and working with default Joomla SEO:
RewriteRule ^/$ /index.php RewriteRule ^/content/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=$1&id=$2&Itemid=$3&limit=$4&limitstart=$5 RewriteRule ^/content/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=$1&id=$2&Itemid=$3 RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+) /index.php?option=$1&$2=$3&$4=$5&$6=$7 RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/ /index.php?option=$1&$2=$3
Tested and working with sh404SEF:
RewriteLogLevel 4 #Make it 0 in to turn debugging off RewriteLog c:\IIRfLogfile.log #Write the absolute path of your file here MaxMatchCount 10 # don't rewrite any request that goes to administrator RewriteRule ^/administrator - [L] RewriteCond %{HTTP_URL} (/|\.htm|\.php|\.html|!administrator|/[^.]*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) /index.php [U,L]
Other Third party SEO should work once to follow there rewrite conditions/rules. I run IonicIsapiRewriter-1.2.12b the betas are rock solid and I use it on my production servers with no issues. Please follow vendors installation instructions to get the ISAPI filter working on your IIS server.