if there's other options, please let me know...
At some level, you have to make a change *somewhere* :)
If not through script naming and placement, then through web server configuration. However, most of these configurations for Apache can be done through a .htaccess file in your web root, assuming your host allows them -- most do.
1. "Options +MultiViews"
MultiViews will ask Apache to look for the requested resource eg /foo/bah/boo/, and if not available, it will step backwards down the path until it finds something. It also ignores extensions (forgive my crude / quick description). So,
foo.php/?id=2 and foo/?id=2 are the same resource
There's downside, which is that requesting foo/bah/boo may result in foo.php being called (which is great), but if foo/bah/boo was never intended to exist, Apache will not generate a 404 error -- it will leave it upto foo.php to decide what to do.
2. mod_rewrite
You could use mod_rewrite to rewrite your URLs so that foo/?id=2 is internally rewritten to foo.php?id=2
3. Forcing type
You could name your script just 'foo' instead of 'foo.php', and force 'foo' to be parsed through PHP:
<Files foo> ForceType application/x-httpd-php </Files>
Similarly, if you were worried about anyone knowing you were running PHP, or having your URLs tied to PHP permantently, you could force all .html files through PHP.
<Files ~ "\.html$"> ForceType application/x-httpd-php </Files>
There's plenty Apache can do to solve your problem -- if your host doesn't allow it, move hosts... there's only two ways out of this that I'm aware of:
1. change apache 2. severely rework your file structure (as discussed already)
--- Justin French http://indent.com.au
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php