This text is replaced by the Flash movie.

Joomla SEF and IIS URL rewrite

Using ISAPI 3.0 over IIS 6.0 for rewriting URL to Search Engine Friendly URL, I experienced this problem that links return 404 error when clicking any links on joomla. After googling for 3 hours, I found the right solution, which requires to hack the code.

.htaacess code
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php

This is because Joomla expects original URL in the REQUEST_URI server variable, but in IIS this variable is not available and cannot be emulated.
With ISAPI_Rewrite we store original request in HTTP_X_REWRITE_URL. You can then assign value of this variable in PHP code to the REQUEST_URI variable

at /components/com_sef/sef.php
// IIS patch.
if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
}

I append this code over sef.php by the way I'm using the component sh404SEF which I guess is the best for joomla I have tried OpenSEF (this component I guess is not continue for development) and ArtioSEF.



Tags: , , , ,

Leave a Reply

*