On Thursday, March 25, 2004, at 04:37 PM, john doe wrote:
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