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.

eZ debug

Timing: Jan 31 2025 00:35:41
Script start
Timing: Jan 31 2025 00:35:41
Module start 'layout'
Timing: Jan 31 2025 00:35:41
Module start 'content'
Timing: Jan 31 2025 00:35:41
Module end 'content'
Timing: Jan 31 2025 00:35:41
Script end

Main resources:

Total runtime0.0250 sec
Peak memory usage8,192.0000 KB
Database Queries3

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0045 588.3828151.2422
Module start 'layout' 0.00450.0037 739.6250220.7500
Module start 'content' 0.00830.0152 960.37501,001.7891
Module end 'content' 0.02340.0015 1,962.164133.9922
Script end 0.0250  1,996.1563 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.002610.5499140.0002
Check MTime0.00114.4964140.0001
Mysql Total
Database connection0.00072.843210.0007
Mysqli_queries0.00239.137830.0008
Looping result0.00000.060110.0000
Template Total0.00114.310.0011
Template load0.00083.291310.0008
Template processing0.00031.019210.0003
Override
Cache load0.00062.212010.0006
General
dbfile0.003112.377680.0004
String conversion0.00000.033440.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs