RewriteRules for hostname-based site access

Author Message

David Hupp

Saturday 23 September 2006 2:06:04 am

I am attempting to set up a site on a web host using eZ publish 3.8.4. I have successfully set up eZ publish on my laptop in the past, but I have hit a roadblock on the host.

I was following the instructions at http://ez.no/doc/ez_publish/technical_manual/3_8/installation/virtual_host_setup, but my host does not allow me direct access to httpd,conf, so they set up the virtual host, while I had to use a .htaccess for RewriteRules.

My .htaccess is as follows:

Options FollowSymLinks
php_value magic_quotes_gpc 0
php_value magic_quotes_runtime 0
php_value allow_call_time_pass_reference 0
DirectoryIndex index.php
RewriteEngine On
Rewriterule ^/var/storage/.* - [L]
Rewriterule ^/var/[^/]+/storage/.* - [L]
RewriteRule ^/var/cache/texttoimage/.* - [L]
RewriteRule ^/var/[^/]+/cache/texttoimage/.* - [L]
Rewriterule ^/design/[^/]+/(stylesheets|images|javascript)/.* - [L]
Rewriterule ^/share/icons/.* - [L]
Rewriterule ^/extension/[^/]+/design/[^/]+/(stylesheets|images|javascripts?)/.* - [L]
Rewriterule ^/packages/styles/.+/(stylesheets|images|javascript)/[^/]+/.* - [L]
RewriteRule ^/packages/styles/.+/thumbnail/.* - [L]
RewriteRule ^/favicon\.ico - [L]
RewriteRule ^/robots\.txt - [L]
# Uncomment the following lines when using popup style debug.
# RewriteRule ^/var/cache/debug\.html.* - [L]
# RewriteRule ^/var/[^/]+/cache/debug\.html.* - [L]
RewriteRule .* /index.php

When I have my .htaccess thus, I receive an http server error 500, and my error_log reads:

mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.

If I comment out the last line, then then site works correctly, except with the URL reading:

http://domain.tld/index.php/directory/content/

instead of:

http://domain.tld/directory/content/

I asked my host if the error was due to how the server was configured, and they said:

Basically, the rewrite rule you are trying to use is impossible because it's an infinite redirect. You need something more concise.

Does anyone have any suggestions as to how I might remedy this problem?

David Hupp

Saturday 23 September 2006 2:25:24 am

One other thing...

If I change the last line of the .htaccess to

RewriteRule .* index.php

then the URL works without the 'index.php' part, except that all of the static content (i.e. theme images, stylesheets, etc.) is then also passed to eZ publish, rather than being served statically, and I get a kernel (20) error since it doesn't exist in eZ publish.

Andrew K

Monday 25 September 2006 2:25:07 pm

This appears to be the same error you get when you go to www.site.com/index.php and not www.site.com/index.php/

From what I've been reading it seems that Apache2 is what's making things difficult on us. I'm having the same problem as you are.

Can anyone help?

--Andrew

David Hupp

Wednesday 27 September 2006 12:59:52 am

I am running Apache 1.3.33 with PHP 4.4.2, loaded as an Apache module. I don't exactly understand what you're suggesting with http://domain.tld/index.php/ versus http://domain.tld/index.php. Both of those work for me now (without the RewriteRule); I am trying to have neither, i.e. http://domain.tld/.

Andrew K

Wednesday 27 September 2006 7:13:45 am

Hmm... Well I guess I was wrong. I'm getting the kernel (20) error if I don't use the trailing slash on index.php. I figured that the rewrite rule wasn't putting the trailing slash in, which was why you got that error 20.

Sorry about that. I'm sure someone can help us out with this.

--Andrew

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.