|  | @@ -51,17 +51,144 @@ Usage Examples
 | 
	
		
			
				|  |  |  - How to share a Windows folder: copy mongoose executable to a folder and
 | 
	
		
			
				|  |  |    double-click the executable. The folder should be accessible via
 | 
	
		
			
				|  |  |    [http://localhost:8080](http://localhost:8080) in any browser.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  - How to start mongoose at UNIX startup time in daemon mode, serving
 | 
	
		
			
				|  |  |    directory `/var/www`: put this line in the system startup script:
 | 
	
		
			
				|  |  |    `/path/to/mongoose -listening_ports 80 -document_root /var/www &`
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +- How to serve user home directories using URL rewrite:
 | 
	
		
			
				|  |  | +  `mongoose -url_rewrite_patterns /~joe/=/home/joe/,/~bill=/home/bill/`
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  Command Line Options
 | 
	
		
			
				|  |  |  --------------------
 | 
	
		
			
				|  |  | -`-A <htpasswd_file> <domain_name> <user_name> <password>`
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    Add/edit user's password in the passwords file. Deleting users
 | 
	
		
			
				|  |  | -    can be done with any text editor. Functionality is similar to
 | 
	
		
			
				|  |  | -    Apache's `htdigest` utility.
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -A htpasswd_file domain_name user_name password
 | 
	
		
			
				|  |  | +         Add/edit user's password in the passwords file. Deleting users
 | 
	
		
			
				|  |  | +         can be done with any text editor. Functionality is similar to
 | 
	
		
			
				|  |  | +         Apache's htdigest utility.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -C cgi_pattern
 | 
	
		
			
				|  |  | +         All files that fully match cgi_pattern are treated as CGI.
 | 
	
		
			
				|  |  | +         Default pattern allows CGI files be anywhere. To restrict CGIs to
 | 
	
		
			
				|  |  | +         certain directory, use e.g. "-C /cgi-bin/**.cgi".  Default:
 | 
	
		
			
				|  |  | +         "**.cgi$|**.pl$|**.php$"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -E cgi_environment
 | 
	
		
			
				|  |  | +         Extra environment variables to be passed to the CGI script in
 | 
	
		
			
				|  |  | +         addition to standard ones. The list must be comma-separated list
 | 
	
		
			
				|  |  | +         of X=Y pairs, like this: "VARIABLE1=VALUE1,VARIABLE2=VALUE2".
 | 
	
		
			
				|  |  | +         Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -G put_delete_passwords_file
 | 
	
		
			
				|  |  | +         PUT and DELETE passwords file. This must be specified if PUT or
 | 
	
		
			
				|  |  | +         DELETE methods are used. Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -I cgi_interpreter
 | 
	
		
			
				|  |  | +         Use cgi_interpreter as a CGI interpreter for all CGI scripts
 | 
	
		
			
				|  |  | +         regardless script extension.  Mongoose decides which interpreter
 | 
	
		
			
				|  |  | +         to use by looking at the first line of a CGI script.  Default:
 | 
	
		
			
				|  |  | +         "".
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -P protect_uri
 | 
	
		
			
				|  |  | +         Comma separated list of URI=PATH pairs, specifying that given
 | 
	
		
			
				|  |  | +         URIs must be protected with respected password files. Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -R authentication_domain
 | 
	
		
			
				|  |  | +         Authorization realm. Default: "mydomain.com"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -S ssi_pattern
 | 
	
		
			
				|  |  | +         All files that fully match ssi_pattern are treated as SSI.
 | 
	
		
			
				|  |  | +         Unknown SSI directives are silently ignored. Currently, two SSI
 | 
	
		
			
				|  |  | +         directives are supported, "include" and "exec".  Default:
 | 
	
		
			
				|  |  | +         "**.shtml$|**.shtm$"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -T throttle
 | 
	
		
			
				|  |  | +         Limit download speed for clients.  throttle is a comma-separated
 | 
	
		
			
				|  |  | +         list of key=value pairs, where key could be a '*' character
 | 
	
		
			
				|  |  | +         (limit for all connections), a subnet in form x.x.x.x/mask (limit
 | 
	
		
			
				|  |  | +         for a given subnet, for example 10.0.0.0/8), or an URI prefix
 | 
	
		
			
				|  |  | +         pattern (limit for the set of URIs, for example /foo/**). The
 | 
	
		
			
				|  |  | +         value is a floating-point number of bytes per second, optionally
 | 
	
		
			
				|  |  | +         followed by a `k' or `m' character, meaning kilobytes and
 | 
	
		
			
				|  |  | +         megabytes respectively. A limit of 0 means unlimited rate. The
 | 
	
		
			
				|  |  | +         last matching rule wins. For example, "*=1k,10.0.0.0/8" means
 | 
	
		
			
				|  |  | +         limit everybody to 1 kilobyte per second, but give people from
 | 
	
		
			
				|  |  | +         10/8 subnet unlimited speed. Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -a access_log_file
 | 
	
		
			
				|  |  | +         Access log file. Default: "", no logging is done.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -d enable_directory_listing
 | 
	
		
			
				|  |  | +         Enable/disable directory listing. Default: "yes"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -e error_log_file
 | 
	
		
			
				|  |  | +         Error log file. Default: "", no errors are logged.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -g global_passwords_file
 | 
	
		
			
				|  |  | +         Location of a global passwords file. If set, per-directory
 | 
	
		
			
				|  |  | +         .htpasswd files are ignored, and all requests must be authorised
 | 
	
		
			
				|  |  | +         against that file.  Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -i index_files
 | 
	
		
			
				|  |  | +         Comma-separated list of files to be treated as directory index
 | 
	
		
			
				|  |  | +         files.  Default: "index.html,index.htm,index.cgi"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -l access_control_list
 | 
	
		
			
				|  |  | +         Specify access control list (ACL). ACL is a comma separated list
 | 
	
		
			
				|  |  | +         of IP subnets, each subnet is prepended by '-' or '+' sign. Plus
 | 
	
		
			
				|  |  | +         means allow, minus means deny. If subnet mask is omitted, like
 | 
	
		
			
				|  |  | +         "-1.2.3.4", then it means single IP address. Mask may vary from 0
 | 
	
		
			
				|  |  | +         to 32 inclusive. On each request, full list is traversed, and
 | 
	
		
			
				|  |  | +         last match wins. Default setting is to allow all. For example, to
 | 
	
		
			
				|  |  | +         allow only 192.168/16 subnet to connect, run "mongoose
 | 
	
		
			
				|  |  | +         -0.0.0.0/0,+192.168/16".  Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -m extra_mime_types
 | 
	
		
			
				|  |  | +         Extra mime types to recognize, in form "extension1=type1,exten-
 | 
	
		
			
				|  |  | +         sion2=type2,...". Extension must include dot.  Example: "mongoose
 | 
	
		
			
				|  |  | +         -m .cpp=plain/text,.java=plain/text". Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -p listening_ports
 | 
	
		
			
				|  |  | +         Comma-separated list of ports to listen on. If the port is SSL, a
 | 
	
		
			
				|  |  | +         letter 's' must be appeneded, for example, "-p 80,443s" will open
 | 
	
		
			
				|  |  | +         port 80 and port 443, and connections on port 443 will be SSL-ed.
 | 
	
		
			
				|  |  | +         It is possible to specify an IP address to bind to. In this case,
 | 
	
		
			
				|  |  | +         an IP address and a colon must be prepended to the port number.
 | 
	
		
			
				|  |  | +         For example, to bind to a loopback interface on port 80 and to
 | 
	
		
			
				|  |  | +         all interfaces on HTTPS port 443, use "mongoose -p
 | 
	
		
			
				|  |  | +         127.0.0.1:80,443s". Default: "8080"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -r document_root
 | 
	
		
			
				|  |  | +         Location of the WWW root directory. Default: "."
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -s ssl_certificate
 | 
	
		
			
				|  |  | +         Location of SSL certificate file. Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -t num_threads
 | 
	
		
			
				|  |  | +         Number of worker threads to start. Default: "10"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -u run_as_user
 | 
	
		
			
				|  |  | +         Switch to given user's credentials after startup. Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -w url_rewrite_patterns
 | 
	
		
			
				|  |  | +         Comma-separated list of URL rewrites in the form of "pattern=sub-
 | 
	
		
			
				|  |  | +         stitution,..." If the "pattern" matches some prefix of the
 | 
	
		
			
				|  |  | +         requested URL, then matched prefix gets substituted with "substi-
 | 
	
		
			
				|  |  | +         tution".  For example, "-w /con-
 | 
	
		
			
				|  |  | +         fig=/etc,**.doc|**.rtf=/path/to/cgi-bin/handle_doc.cgi" will
 | 
	
		
			
				|  |  | +         serve all URLs that start with "/config" from the "/etc" direc-
 | 
	
		
			
				|  |  | +         tory, and call handle_doc.cgi script for .doc and .rtf file
 | 
	
		
			
				|  |  | +         requests. If some pattern matches, no further matching/substitu-
 | 
	
		
			
				|  |  | +         tion is performed (first matching pattern wins). Use full paths
 | 
	
		
			
				|  |  | +         in substitutions. Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +     -x hide_files_patterns
 | 
	
		
			
				|  |  | +         A prefix pattern for the files to hide. Files that match the pat-
 | 
	
		
			
				|  |  | +         tern will not show up in directory listing and return 404 Not
 | 
	
		
			
				|  |  | +         Found if requested. Default: ""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Common Problems
 | 
	
		
			
				|  |  |  ---------------
 |