RegEx Drain Brammage
Whats this do? ^([^.?]+)$ Or rather, how does it do it, and why wouldn't something simpler work, like ^(.+)$ ?
in:
From beginning of line (^) to end of line ($) match () one-or-more (+) of ... not-character followed by a question mark ?? ... or perhaps zero-or-more not-characters ?
in:
RewriteEngine on
# Rewrite /foo/bar to /foo/bar.php
RewriteRule ^([^.?]+)$ %{REQUEST_URI}.php [L]
# Return 404 if original request is /foo/bar.php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]
from: http://us2.php.net/manual/en/security.hiding.php#72630From beginning of line (^) to end of line ($) match () one-or-more (+) of ... not-character followed by a question mark ?? ... or perhaps zero-or-more not-characters ?

no subject
A dot inside square brackets is literal, so [.] matches a dot. Therefore, [.?] matches either one or zero dots, and [^.?] would match anything other than one or zero dots (i.e. any non-dot non-null character). Thus ^([^.?]+)$ would match one or more non-dot non-null characters. ^(.+)$ would match a string of dots, and ^([^.]+)$ would almost work, matching any string consisting of non-dot characters, but it would also match the null set.
Make sure and point out my errors. I like to learn.
no subject