views:

381

answers:

1

Hi all,

A friend of mine has inherited an old Joomla 1.0.x site, that amongst other things has a big problem with IE visitors.

The site is viewable here: http://intellepark.co.za

If you browse the site with Firefox, the GETs / responses bounce around as follows:

    1. GET /      
    2. 302 to /site
    3. GET /site
    4. 301 to /site/
    5. GET /site/
    6. 200 (or 304)

Problems in IE

In IE7, the same sequence occurs, but at step 6, IE fails to load the page appropriately and displays the "Internet Explorer cannot display the webpage" error page.

If I load the same page with IE6 (Standalone version) I get intermittent and malformed responses from the server. The document fails to download properly but still displays up until the last byte it received.

Solution?

At first I thought there was something wrong with the output, so:

  • I checked the HTML: There's a double slash in all asset URLs (e.g. /site//templates/intellepark/js/mootools.js). The doctype is XHTML1, valid, but the charset is Latin.
  • I disabled JavaScript in IE, but that results in the same behaviour.

So now I suspect it's a configuration issue.

The server is running the following:

    Apache 2.2.9
    Joomla 1.0.12 Stable
    PHP 5.2

What would be causing this bad behaviour in IE? Is it the double slash in the URLs? What can I recommend to my friend to have this problem fixed?

Thanks for your help - Please let me know if you require any further info!

--nd

edit

Inline paste of the .htacces file

##  Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

#
#  mod_rewrite in use

RewriteEngine On


#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla!/MamboDirectory (just / for root)

# RewriteBase /


########## Begin - Joomla! core SEF Section
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
RewriteRule ^(content/|component/) index.php
#
########## End - Joomla! core SEF Section

# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
A: 

I notice 2 things, but I'm not sure if either is the problem.

1) The site flushes the output early. This is fine (actually good). Other resources can start downloading before the index.php is fully loaded. However, depending on how this is configured it might be causing some problems for IE (and may be related to 2 below).

To diagnose, turn off any early output flushing, and see what happens.

2) The second thing that I notice is that the calculated checksum is different than the stored checksum, and since the content is gzip compressed, IE6 may not decompress after a failed checksum (I don't know what IE's default behavior is in that scenario).

Anyway, turn off compression, and see what happens.

Hope that helps, and let us know when what happens when you disable each of those (individually and both together).

Keith Bentrup