Format of the Access Control File
under the GoHTTP system


The following list shows the parameters which are recognized in the Access Control File. Order is not important, parameters that do not apply to the authorization method specified will be ignored.

A sample htaccess file illustrates the proper file format.


Key:
	
* - New in v2.01.9
	
** - New in v2.01.9-N
AuthType:
This parameter indicates which authentication method to employ for the directory in which the htaccess file resides.

Acceptable values are "BASIC" and "IDENT".

AuthName:
(Basic)
This is the Authorization Realm for the Basic Authentication method. It is passed to the client as part of the authentication challenge as a means to provide the remote user with a reference to the correct userid/password to enter. This is especially useful for user's who must access files from separately controlled areas on the same server.

The entire remainder of the line following the ":" will be considered the value of the Realm.

AuthUserFile:
(Basic)
This parameter specifies the file to use to contain the list of users and their corresponding passwords.

Special Note: the filename must contain a complete path and filename. (E.g. "d:\path\filename.ext")

The AuthUserFile is a text file, with each line containing a userid and a password, in the format:

   user:password

(Password is currently only supported in unencrypted form.)

AuthGroupFile:
(Basic / Ident)
This parameter specifies the file to use to contain the list of groups, and users that belong to each group.

Special Note: the filename must contain a complete path and filename. (E.g. "d:\path\filename.ext")

The AuthGroupFile is a text file, with each line containing a groupname and a list of users, in the format:

   group:user1 user2 user3 ...

Usernames must be defined in the AuthUserFile to have a password associated with it. Since the IDENT method does not employ passwords, the AuthUserFile is not necessary when using this method.

Limit:
(Basic / Ident)
This entry controls the actual restrictions imposed. The value of this parameter must be in the following format:
   verb list...

where:


The following parameters to not pertain to authorization:


DefaultIndex:
The value of this parameter will override the systemwide list of default file names for directory requests.

For example, "index.htm index.html welcome.html" is the global default list. A request for "/foo/" will cause the system to attempt to return the file "/foo/index.htm", if it exists. Otherwise it will move to the next item in the list and try again. Using this parameter in a htaccess file in the "/foo" directory allows one to specify the default name (E.g. to "sample.html") for this directory and all child subdirectories...

RedirFile:
This parameter allows one to override the global URI redirection database filename for a particular directory. (and all child subdirectories...)

The following parameters control the Dynamic Directory Indexing functon:


BuildDir:
This parameter controls the behaviour of the Dynamic Directory Indexing function - The format of the entry is as follows:
   BuildDir: 0

The value "0" disables the automatic creation of the directory index, while any other value following the ":" will activate the function if disabled.

Dir.Exclude: *
Appends the specified filename(s) to the internal master list of filenames that should not be included in a dynamic directory index .

Format:

   Dir.Exclude: filenam1.ext filenam2.ext filenam3.ext ...

_Dir.Exclude: *
Replaces the internal master list of filenames that should not be included in a dynamic directory index with the specified list of filenames.

Format: (Same as 'Dir.Exclude'.)

Dir.Info: *
This directive sets the name of the file that should be displayed at the beginning of a dynamic directory index.

Format:

   Dir.Info: [d:\path\]filename.ext

Dir.Describe: *
This directive sets the name of the file that contains descriptive information displayed in a dynamic directory index.

Format:

   Dir.Describe: [d:\path\]filename.ext

The file should be formatted like a 4OS/2 descript.ion file with the name of the file followed by the description. Long file names containing blanks must be in double quotes.

Dir.Forbid: *
Originally intended to contain the name of a file, that if it exists in a given directory, no dynamic index is created/returned. Now takes a simple boolean value -- any value other than a "0" will be assumed to be a positive selection, that directory index building should be disallowed in this and child directories.

Format:

   Dir.Forbid: n

Where "n" is either "1" or "0". (Boolean) If "0", Directory building will be enabled. If "1", then Directory building will be disabled. This is redundant with 'Dir.Build', but is implemented here for compatibility with Albert's code.

Dir.Builder: *
Sets the name of the Dynamic Directory listing module to employ for the current directory, and any child directories. Specifying a non-existent alternate function will result in an error message returned to the client.

Format:

   Dir.Builder: filename.ext

Note: The REXX module must reside in the GoServe directory on the server. (Albert's code to allow subdirectories for external REXX functions had a few nasty problems with multithreading/multtasking.)

EnablePostProcess: **
Sets the HTML post-processing mode for the current directory, and any child directories.

Format:

   EnablePostProcess: 2

Where:

   
0 - disable all post-processing
   
1 - enable post-processing on all files with an extension of ".*HTM*"
   
2 - enable post-processing only on files with a ".SHTML" extension

19 August, 1995 / Suggestions & Comments to D.L. Meyer / meyer@larch.ag.uiuc.edu