i n f r a d i g


Web directive
 
Meaning
(can occur in 'ifweb.txt' file)
  
NOHTTP [0|1]HTTP web server
NOHTTPS [0|1]HTTP+SSL web server
HTTP_PORT 80HTTP port
HTTPS_PORT 443HTTPS port
ADMIN_PORT 80Web-admin port
LOGW ../data/web.logWeb-server log files
LOGFILEFORMAT [clf|eclf|iis|eiis]Specify log file format
HTTPTIMEOUT secondsHTTP idle connection timeout in seconds (default is 300)
HTTPCACHEINTERVAL hoursHTTP proxy cache time (default is 4 hours)
SCRIPTTIMEOUT secondsScript timeout in seconds (default is 90)
INDEX filenameDefault HTML page
SSI [.ext]Can process server-side includes in the web-server (but only for extension)
MAPMIME .ext mimetypeDefine mapping between a file extension and MIME type
MAPCGI .ext programDefine mapping between file-extension and program
ISAPI .ext dllnameMap a file-extension to an ISAPI DLL
<VHOST hostname>Start mapping virtual host
</VHOST>End mapping virtual host
<VUSER userid>Start mapping virtual user
</VUSER>End mapping virtual user
<VDIR virtual>Start mapping virtual directory for a virtual host or default
</VDIR>End mapping virtual directory
ALIAS accountAlias the virtual user to a real account
DIRLIST [0|1]Can produce directory listings for a virtual host or default (default is no)
USERCGI [0|1]Support CGI from user directories for a virtual host or default
ALLCGI [0|1]Support CGI from non-user directories for a virtual host or default
WWWROOT pathRoot document directory for a virtual host or default
CGIROOT pathRoot CGI directory for a virtual host or default
USERROOT pathRoot user directory for a virtual host or default
DIRECTORY pathSet the physical directory for a virtual host or default
ALLOW [GET|PUT|POST|DELETE]+Specify allowed operations (default is GET & POST)
LANG language[,...]List of languages supported
AUTH [userid|*]Require a userid to log in and read
NOAUTHDon't require a userid to log in and read
MAUTH [userid|*]Require a userid to log in and get modify access
NOMAUTHDon't require a userid to log in and get modify access
XAUTH [userid|*]Require a userid to log in and get execute (CGI) access
NOXAUTHDon't require a userid to log in and get execute access
PROXY port host:portProxy the given port to remote host and port combination
HTTP_PROXY host:portProxy non-local HTTP to remote host and port combination
BYPASSPROXY domain[,...]Bypas proxy for given domains
PERMIT [ip-address|hostname]Grant 'ip-address' or 'hostname' rely access
EXCLUDE [ip-address|hostname]Deny 'ip-address' or 'hostname' relay access
PROXYPERMIT [ip-address|hostname]Grant 'ip-address' or 'hostname' access
PROXYEXCLUDE [ip-address|hostname]Deny 'ip-address' or 'hostname' access

NOHTTP [0|1]

If specified then no HTTP service is provided. The server must be stopped for a change in this keyword to take effect. If you specify this then you can still provide web-admin service if the admin port is different to the HTTP port.

NOHTTPS [0|1]

If specified then no special HTTP+SSL service is provided. The server must be stopped for a change in this keyword to take effect.

HTTP_PORT port

Port number to provide HTTP access on. Default is 80.

HTTPS_PORT port

Port number to provide HTTPS access on. Default is 443.

ADMIN_PORT port

Port number to provide web-admin access on. Default is 80. If you specifiy NOHTTP then change the port number here in order to still provide web-admin service (port 81 is recomended).

INDEX filename

Set the default HTML file that is loaded first. If not specified defaults to 'index.html'.

SSI [.ext]

If present instructs the web-server to look for and process server-side includes. There is considerable overhead in processing HTML pages and searching for SSI commands. If '.ext' is present (RECCOMENDED) then only files with the given extension are examined. Typically an extension of '.stm' is used (in the Microsoft world).

MAPMIME .ext mimetype

Given the file extension of a document then return the specified MIME type. For example...
	MAPMIME .html text/html
Many common types are pre-defined (see ifweb.sam) if not specified here, but can be overidden or new types added.

MAPCGI .ext program

Given the file extension of a CGI script then run the specified program. A full path need not be given to the program if the path to it exists in the PATH environment variable (ie. the system knows how to find it). For example...
    MAPCGI .py python -u
instructs the system to run Python scripts using the 'python' program with the '-u' (unbuffered) option. Note: it is not necessary under Windows to specifiy .EXE extenxion on the program.

ISAPI .ext dllname

Given the file extension of a CGI script then run the specified ISAPI DLL. A full path need not be given to the program if the path to it exists in the PATH environment variable (ie. the system knows how to find it). For example...
    ISAPI .pl perlis.dll
instructs the system to run Perl scripts using the 'perlis.dll' ISAPI DLL. Using ISAPI faster throughput is possible than with loading and running an executable for each request.

LOGFILEFORMAT [clf|eclf|iis|eiis]

Specifiy log file format. Default is 'eclf' (extended common log format).

PERMIT [ip-address|hostname|domain]

Specify the IP address, IP mask, hostname or domain of a machine that is allowed access, anyone else must be in a 'hosted' domain. This command can be specified multiple times. A wild-card can be used, for example...
	PERMIT 10.*
	PERMIT domain.com
	PERMIT *.research.mydomain.com

Use the "ORDER PERMIT EXCLUDE" (the default) or "ORDER EXCLUDE PERMIT" to specify processing options.

EXCLUDE [ip-address|ip-mask|hostname|domain]

Specify the IP address, IP mask, hostname or domain of a machine that is NOT allowed access. This command can be specified multiple times. A wild-card can be used, for example...
	EXCLUDE 10.0.*.0                 # Training room
	EXCLUDE bdlg3.mydomain.com
will deny a certain subnet access.

Use the "ORDER PERMIT EXCLUDE" (the default) or "ORDER EXCLUDE PERMIT" to specify processing options.

PROXYPERMIT [ip-address|hostname|domain]

Specify the IP address, IP mask, hostname or domain of a machine that is allowed proxy access, anyone else must be in a 'hosted' domain. This command can be specified multiple times. A wild-card can be used, for example...
	PROXYPERMIT 10.*
	PROXYPERMIT 192.168.*
	PROXYPERMIT 127.0.0.1

Use the "ORDER PROXYPERMIT PROXYEXCLUDE" (the default) or "ORDER PROXYEXCLUDE PROXYPERMIT" to specify processing options.

PROXYEXCLUDE [ip-address|ip-mask|hostname|domain]

Specify the IP address, IP mask, hostname or domain of a machine that is NOT allowed proxy access. This command can be specified multiple times. A wild-card can be used, for example...
	EXCLUDE bdlg3.mydomain.com
will deny a certain subnet proxy access.

Use the "ORDER PROXYPERMIT PROXYEXCLUDE" (the default) or "ORDER PROXYEXCLUDE PROXYPERMIT" to specify processing options.

<VHOST hostname>

A virtual host can be used to present different web-sites based upon the name that was used to access the machine. For instance a machine may have one IP-address but multiple names (or personalities). Depending upon which one was used then the appropriate response is given. For example...
	<VDIR /demo>
	DIRECTORY ../inetpub/demo
	AUTH *
	</VDIR>

	<VHOST test.mydomain.com>
	<VDIR /demo>
	DIRECTORY ../inetpub/demo-test
	AUTH progs
	AUTH sales
	</VDIR>
	</VHOST>

	<VHOST dev.mydomain.com>
	<VDIR /demo>
	DIRECTORY ../inetpub/demo-dev
	AUTH progs
	ALLOW GET+POST+PUT+DELETE
	</VDIR>
	</VHOST>

</VHOST>

Ends a virtual host mapping.

WWWROOT path

Path to a directory that specifies the top-level for Web document access (if the web-server is installed).

Note: this path can be a relative path. Forward slashes ('/') are allowed under Windows.

CGIROOT path

Path to a directory that specifies the top-level for CGI script access (if the web-server is installed). You can put POSTIE.EXE here if you want Web-mail access. You should NEVER put PERL.EXE here as it is not web-safe, rather install it using the setup procedures (get from http://www.activestate.com). If this keyword is not present then CGI is not allowed (anywhere).

Note: this path can be a relative path. Forward slashes ('/') are allowed under Windows.

DIRLIST [0|1]

If present (or value 1) instructs the web-server to produce directory listings if no document specified and no default (eg. 'index.html' or 'default.htm') is present. Default is to not produce directory listings.

USERCGI [0|1]

If present (or value 1) then users can place CGI programs in their home directories and have them run. Default is to not allow it.

USERROOT path

Path to a directory that specifies the top-level for WWW user access (if the web-server is installed). That is, where 'userid' directory is created. If this keyword is not present then user directories are not allowed. The URL 'http://domain/~userid' gets mapped to the directory 'USEROOT/userid/public_html'. The reason for using 'public_html' as the public access point is that this allows the user a private area above it that isn't exposed to the Web and which may be updated by FTP or other means. If the file 'USERROOT/user/.forward' exists then it is used during mail delivery such that a copy of the message is sent to each address listed (one per line) instead of being delivered to the user account. The URL 'ftp://domain/~userid' or FTP remote directory '/~userid' gets mapped to the directory 'USERROOT/userid/public_ftp' by anonymous users (with read-only access) and to 'USERROOT/userid' by the owner (with modify access).

Note: this path can be a relative path. Forward slashes ('/') are allowed under Windows.

<VUSER username>

A virtual user can be used to present a user's directories differently. For example...
	<VUSER test>
	ALIAS u101
	<VDIR /demo>
	AUTH *
	</VDIR>
	<VDIR /dev>
	AUTH progs
	</VDIR>
	</VUSER>

</VUSER>

Ends a virtual user mapping.

ALIAS account

Defines a mapping between a virtual user and a real account. For example...
	<VHOST domain1>
	<VUSER test>
	<ALIAS u101
	</VUSER>
	</VHOST>

	<VHOST domain2>
	<VUSER test>
	<ALIAS u102
	</VUSER>
	</VHOST>

<VDIR virtual>

A virtual directory is the left-most part of the local part of a URL and can be mapped to a separate physical location. It is analogous to a mount point with a network file-system. For example...
	<VDIR /demo>
	DIRECTORY ../inetpub/demo
	ALLOW GET+POST+PUT+DELETE
	AUTH demo
	</VDIR>
If a <VDIR> definition occurs outside of a <VHOST> definition it applies to the default host. If it occurs inside then it applies to that host only.

</VDIR>

Ends a virtual directory mapping.

DIRECTORY physical

Defines the default mapping between a virtual entity and a physical directory. This keyword is optional.

Note: this path can be a relative path. Forward slashes ('/') are allowed under Windows.

ALLOW [GET|POST|PUT|DELETE]+

Specifies allowed operation(s). Default is GET+POST. NOTE: GET implies HEAD as well.

AUTH [userid|userid@|*]

Specify a userid that is allowed read access. Can be an alias to allow for groups. Default is everyone has read access. If '*' then anyone with a valid userid/password can log in. If blank then no one is required to log in (same as NOAUTH). If 'userid@' then 'userid@domain' can log in to 'domain'.

NOAUTH

No one is required to login in order to obtain read access.

MAUTH [userid|userid@|*]

Specify a user that is allowed modify access. Can be an alias to allow for groups. Default is everyone has read access. If '*' then anyone with a valid userid/password can log in. If blank then no one is required to log in (same as NOMAUTH). If 'userid@' then 'userid@domain' can log in to 'domain'.

NOMAUTH

No one is required to login in order to obtain modify access.

XAUTH [userid|userid@|*]

Specify a user that is allowed execute (CGI) access. Can be an alias to allow for groups. Default is no-one has execute access. If '*' then anyone with a valid userid/password can log in. If blank then no one is required to log in (same as NOXAUTH). If 'userid@' then 'userid@domain' can log in to 'domain'.

NOXAUTH

No one is required to login in order to obtain execute access.

LANG language[,...]

Define a list of languages supported by automatic mapping to 'adorned' directories. Languages are abbreviations commonly found in web-browsers such as 'en' for English, 'fr' for French and 'de' for German etc. If the browser doesn't supply a recognised language then the nearest match (eg. 'en' for 'en-UK') or the default 'unadorned' directory is used. For example...
	WWWROOT ../inetpub/wwwroot
	LANG fr-BE,fr,de,en
will map anyone coming in with their language set to 'fr-BE' to the directory '../inetpub/wwwroot-fr-BE', anyone with language set to 'fr-*' or 'fr' to '../inetpub/wwwroot-fr', anyone with language set to 'de' to '../inetpub/wwwroot-de' etc. All others will go to '../inetpub/wwwroot' as the default. This allows a web-site to customise it's appearance without first asking the user to make a choice. Note: the order on this keyword is not important, what matters is the order of preference set in the client's browser and whether or not the named adorned directory actually exists.

PROXY port host:port

Set up a generic uni-ported proxy on the specified port to a remote host. This can be used to create an HTTP proxy only if the remote host is an HTTP proxy server. Will not proxy multi-ported protocols like FTP or NetMeeting. Changes to this keyword only take effect on a restart.

HTTP_PROXY host:port

Proxy non-local HTTP requests to the remote host and port.

BYPASSPROXY domain[,...]

Bypass proxying for specified domain names.

HTTPCACHEINTERVAL hours

Keep HTTP proxy results in the cache for this many hours (default is 4 hours).