Print

Print


On Tue, 30 Jun 2009, Eric Lease Morgan wrote:

> Can someone here help me with a tricky Apache mod_rewrite configuration?
>
> I want to write a script accessible via a URL with the following shape:
>
> http://example.org/script/arg1/
>
> Where script is my (Perl) script and arg1 is some... argument.
>
> How do I configure Apache so script gets executed and passes the environment 
> variable PATH_INFO along? I suppose I need to use mod_rewrite somehow. No?

If 'script' is actually in your document root, and not hiding somewhere 
else, you just need to declare that

 	/script

is a CGI (or mod_perl, or fastCGI).

Normally, you'd declare an entire directory, but you can use AddType in 
the httpd.conf to declare that the appropriate file extension should be 
executed, and AddHandler to declare what should be used to run it.  In 
your example, you didn't show an extension, but I think it's a default 
that the extension matching is handled.  (eg, if you have 'file.txt' and 
'file.html', it'll look at the HTTP Accept header to determine which one 
is preferred, and serve the 'best' one.)

Your other option is to use ScriptAliasMatch, where you can tell it that 
it's a script, and that it's actually located somewhere else.

For the SCRIPT_INFO part -- you don't have to do anything, other than make 
sure that whatever you do with mod_rewrite or the like doesn't strip it 
off.

-----
Joe Hourcle