In article <[EMAIL PROTECTED]>,
 [EMAIL PROTECTED] (Cc Zona) wrote:

> In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] 
> wrote:
> 
> > RewriteEngine  on
> > RewriteBase    /
> > RewriteRule    $.* index.php
> 
> RewriteRule takes a regular expression as its first parameter 
> <http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteRule>.
> 
> The "$" regex meta-character is an end-of-line marker.  It has no special 
> meaning at the beginning of a pattern.  If you want a pattern that matches 
> "anything including nothing", use:
> 
> RewriteRule ^.*$ index.php

I shouldn't have copy/pasted, because "index.php" also is wrong in this 
context.  If one is trying to redirect from, say, 
"/dir_that_may_not_exist/" to "index.php", then how is apache supposed to 
serve up "/dir_that_may_not_exist/index.php".  It can't.  So logically the 
2nd parameter has to be "/index.php".  For clarity's sake, using the "L" 
modifier for parameter #3 is also a good idea:

RewriteRule ^.*$ /index.php [L]

Mod_rewrite is a complex beast, so read the docs closely.  And if all you 
really need is to capture/redirect 404s, check out the ErrorDocument 
directive instead.  Simple to use, easy to learn, and none of the 
mod_rewrite overhead.

-- 
CC

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to