How do I enable CGI execution in directories other than the ScriptAlias?

Apache recognizes all files in a directory named as a ScriptAlias 
as being eligible for execution rather than processing as normal
documents. This applies regardless of the file name, so scripts in a
ScriptAlias directory don’t need to be named “*.cgi” or “*.pl” or
whatever. In other words, all files in a ScriptAlias directory are
scripts, as far as Apache is concerned.



To persuade Apache to execute scripts in other locations, such as in
directories where normal documents may also live, you must tell it how
to recognize them - and also that it’s okay to execute them. For this,
you need to use something like the AddHandler directive.



   1. In an appropriate section of your server configuration files, add a line such as



          AddHandler cgi-script .cgi



      The server will then recognize that all
files in that location (and its logical descendants) that end in “.cgi”
are script files, not documents.

   2. Make sure that the directory location is covered by an Options declaration that includes the ExecCGI option.



In some situations, you might not want to actually allow all files
named “*.cgi” to be executable. Perhaps all you want is to enable a
particular file in a normal directory to be executable. This can be
alternatively accomplished via mod_rewrite and the following steps:



   1. Locally add to the corresponding .htaccess file a ruleset similar to this one:



          RewriteEngine on

          RewriteBase /~foo/bar/

          RewriteRule ^quux.cgi$ - [T=application/x-httpd-cgi]



   2. Make sure that the directory location is covered by an
Options declaration that includes the ExecCGI and FollowSymLinks option.

Your rating: None