This text is replaced by the Flash movie.

Posts Tagged ‘Clean URL’

Joomla SEF and IIS URL rewrite

December 3rd, 2007

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.