8.5. Using Extensions to Identify CGI Scripts
Problem
You want Apache to know that all files with a particular extension should be treated as CGI scripts.
Solution
Add the following to your httpd.conf file in a scope covering the areas where it should apply, or in an .htaccess file for the appropriate directory:
AddHandler cgi-script .cgiDiscussion
The AddHandler directive shown in this solution tells Apache that any files that have a .cgi extension should be treated as CGI scripts, and it should try to execute them rather than treat them as content to be sent.
The directive only affects files with that extension in the same scope as the directive itself. You may replace the common .cgi extension with another, or even with a list of space-separated extensions.
Note the use of the term extension rather than suffix; a file named foo.cgi.en is treated as a CGI script unless a handler with the .en extension overrides it.
An alternate way of accomplishing this will cause files with a particular extension to be execute as CGI programs regardless of where they appear in the file system:
<FilesMatch \.cgi(\.|$)>
Options +ExecCGI
SetHandler cgi-script
</FilesMatch>The FilesMatch directive allows directives to be applied to any file that matches a particular pattern. In this case, a file with a file extension of .cgi. As mentioned above, a file may have several file extensions. Thus, rather than using a pattern of \.cgi$, which would require that the filename ended with .cgi, we use \.cgi(\.|$). The ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access