James Guarriman wrote:
What you are doing wrong is trying to use mod_rewrite, the nightmare extension from hell!Hi
I've just installed Apache 2.0.52, with:
./configure --prefix=/usr/local/httpd --enable-so --enable-modules=all
My httpd.conf includes: ----------------------------------- <VirtualHost mydomain> ServerAdmin f...@mydomain DocumentRoot "/home/mydomain" ServerName mydomain ErrorLog logs/mydomain-error_log CustomLog logs/mydomain-access_log common DirectoryIndex index.php index.html index.html.var <Directory "/home/mydomain"> php_flag allow_url_fopen 1 php_flag magic_quotes_gpc 0 RewriteEngine on RewriteOptions MaxRedirects=15 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /$1.php </Directory> </VirtualHost> --------------------------------- (I try to make Apache serve 'foo' as 'foo.php')
But when accessing 'http://mydomain/foo', I get no webpage, but this error log: ---------------------------------- [Mon Jan 24 10:47:59 2005] [debug] mod_rewrite.c(1778): [client 192.168.2.101] mod_rewrite's internal redirect status: 10/15. [Mon Jan 24 10:47:59 2005] [error] [client 192.168.2.101] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. [Mon Jan 24 10:47:59 2005] [debug] core.c(2748): [client 192.168.2.101] r->uri = /favicon.ico.php.php.php.php.php.php.php.php.php.php [Mon Jan 24 10:47:59 2005] [debug] core.c(2754): [client 192.168.2.101] redirected from r->uri = /favicon.ico.php.php.php.php.php.php.php.php.php [Mon Jan 24 10:47:59 2005] [debug] core.c(2754): [client 192.168.2.101] redirected from r->uri = /favicon.ico.php.php.php.php.php.php.php.php [Mon Jan 24 10:47:59 2005] [debug] core.c(2754): [client 192.168.2.101] redirected from r->uri = /favicon.ico.php.php.php.php.php.php.php --------------------------------
If I remove the line 'RewriteOptions MaxRedirects=15', I get a very similar error: ---------------------------- [Wed Jan 24 10:31:29 2005] [debug] mod_rewrite.c(1778): [client 192.168.2.101] mod_rewrite's internal redirect status: 10/10. [Wed Jan 24 10:31:29 2005] [error] [client 192.168.2.101] mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary. [Wed Jan 24 10:31:29 2005] [debug] mod_rewrite.c(1778): [client 192.168.2.101] mod_rewrite's internal redirect status: 0/10. -------------------------------
What am I doing wrong? Thank you very much.
Seriously though, it is your rewrite rule that is wrong, you have defined a recursion in there for any filename that do not already end '.php' or have no .
RewriteRule ^(.*)$ /$1.php => add '.php' to the end of any filename that has a '.' in it somewhere (remember that you are in unix world, so the . does not signify a file extension in the same way as a domestos environment, it is just part of the filename). eg1) blah => blah (no change as it doesn't match the regex) eg2) favicon.ico => favicon.ico.php when the rule next runs, it finds that favicon.ico.php does not match the exception of .php (the .ico gives the first match), so adds .php again, and again, and again, and again.....
Tom
__________________________________ Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. http://info.mail.yahoo.com/mail_250
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php