You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Chad Day <cd...@atpco.com> on 2002/12/04 20:44:51 UTC

[users@httpd] RE: mod_rewrite issues [ongoing, retitled]

I see.  I think I found the problem, I have to specity the full document
root path in the RewriteCond, even though the DocumentRoot is correct.  So
now I have:

<VirtualHost calendar.domain.com>
DocumentRoot /usr/local/www/vhosts/domain.com/htdocs/calendar
DirectoryIndex index.php
ServerName calendar.domain.com
RewriteLogLevel 9
RewriteLog /usr/local/www/sites/domain.com/logs/rewrite_log
LogFormat COMBINED
ErrorLog /usr/local/www/sites/domain.com/logs/error_log
TransferLog /usr/local/www/sites/domain.com/logs/access_log
RewriteEngine on
RewriteCond
/usr/local/www/sites/domain.com/htdocs/calendar/%{REQUEST_FILENAME} !-f
RewriteRule ^(.+) /view.php?ID=$1 [R,L,NE]
</VirtualHost>

This -almost- works.  It redirects correctly, but with the leading slash
problem:

http://calendar.domain.com/cday goes to:

http://calendar.domain.com/view.php?ID=/cday

but like I mentioned, I can strip that off in PHP.  The only other issue I
have is requests to:

http://calendar.domain.com or
http://calendar.domain.com/

go to :

http://calendar.domain.com/view.php?ID=/

In the rewritelog file:

206.181.245.167 - - [04/Dec/2002:15:48:01 +0000]
[calendar.domain.com/sid#80f2a04][rid#813b034/initial] (2) init rewrite
engine with requested uri /
206.181.245.167 - - [04/Dec/2002:15:48:01 +0000]
[calendar.domain.com/sid#80f2a04][rid#813b034/initial] (3) applying pattern
'^(.+)' to uri '/'
206.181.245.167 - - [04/Dec/2002:15:48:01 +0000]
[calendar.domain.com/sid#80f2a04][rid#813b034/initial] (4) RewriteCond:
input='/usr/local/www/sites/penguinleagues.com/htdocs/calendar//'
pattern='!-f' => matched

It doesn't seem to be picking up the directory index (even after I added the
DirectoryIndex line in the vhost, which I don't think was necessary as it
was defined earlier and works fine everywhere else).  I noticed that 2nd /
in the last line of the log, and changed the RewriteCond to:

RewriteCond
/usr/local/www/sites/domain.com/htdocs/calendar%{REQUEST_FILENAME} !-f

but the same problem for the DocumentIndex still exists.  Do I need to write
another rule specifically to handle DocumentIndex requests, or did I do
something else wrong?

Thanks,
Chad

>> view.php certainly exists.  no matter what file I go to in that domain,
it
>> starts looping, even if I just go to http://calendar.domain.com, which
would
>> load up index.php by default.  It matches, goes to view.php, then the
>> request on view.php also matches, begin loop.

>I know.  What I'm suggesting is to put in a specific RewriteCond that
>excludes view.php (testing on REQUEST_FILENAME or REQUEST_URI).  The you
>will be able to test with other files to see whether -f is failing
>entirely.



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org