Default Web Pages

Many of the web pages presented by EZproxy to remote users can be customized. When you download EZproxy, some of these pages will be created with the command

ezproxy -m

whereas other pages must be created manually by the EZproxy administrator and saved in the docs directory.

To customize a page that is created by EZproxy:

  1. Navigate to the EZproxy docs directory. If it has not been moved, you should find it in the EZproxy folder at the same level as the EZproxy binary or executable file.
  2. Use a text or html editor to open the html file you want to customize.
  3. Make changes to the text and images. Make sure you place any graphics files in the public subdirectory, and link to them appropriately.

Note: Be careful when editing the form section if you are editing a login or loginbu page. If you are not familiar with editing forms in html, OCLC suggests that you do not edit this section.

To customize a page that is not created by EZproxy:

  1. Create a new html file using a text or html editor.
  2. Edit the file adding any informational, instructional or warning text in the body of the file. If you are uncertain how to create html pages, you can use one of the default pages as a guide.
  3. Save the file to the docs folder in the EZproxy directory and name it according to the table below. EZproxy will only retrieve the pages named in the table below. If you are not seeing your customized page, make sure you have named it correctly (with no typos) and created the appropriate conditions for this page's retrieval.

Editable Pages

The following pages can be edited and saved in the docs directory. If one of the following pages has been saved in the docs directory, EZproxy will send it to the user in the cases described below. Pages created when you install EZproxy are marked with an *.

html Page Description
badhost.htm In proxy by hostname, if this file exists, it is sent if someone uses a name that points at the EZproxy server but EZproxy does not recognize that hostname. If this file does not exist, EZproxy redirects the user to the proper name of the EZproxy server, which is normally the preferred behavior.
cookie.htm* This file is sent if EZproxy is unable to set its cookie in the remote browser.
https.htm* This file is sent if someone tries to connect to an https service using http.
intruder.htm If this file exists, it is sent when a user has exceeded an IntruderUserAttempts. Using this file to provide feedback simultaneously reveals your policy for number of attempts, which makes it easier for brute force attackers to know when they should try another account. If you choose to use this option, it is best to also enforce a IntruderIPAttempts restriction to increase the difficulty of probing your server.
limit.htm If this file exists, it is sent if the ::Limit option is used in user.txt and a user exceeds his/her login limit. This file may include the special sequence ^0 mentioned below.
login.htm* This file is sent when someone needs to log in to EZproxy.
loginbu.htm* This file is sent when someone has tried to log in to EZproxy but has provided "bad user" information (invalid username or password).
logout.htm* This file is sent when someone accesses the /logout URL to end an EZproxy session.
logup.htm* This file is sent if EZproxy is configured to use groups and a user tries to access a databases for which he/she is not authorized.

If this file exists, it is sent if someone tries to use a starting point URL for a target URL that has not been configured with a database stanza in config.txt. If this page is not added, the following default message will be displayed:

To allow to be used in a starting point URL, your EZproxy administrator must first authorize the hostname of this URL in the config.txt file.

Within this database's section of config.txt, either the following line must be added:


or, alternatively, a RedirectSafe for this host or domain may be appropriate.

After editing config.txt, the EZproxy server must be restarted to make changes take effect.

mv.htm If this file exists, it is sent if the MaxVirtualHosts limit has been exceeded and is preventing access to a web page.
reject.htm If this file exists, it is sent if a RejectIP directive in config.txt matches the remote user address or if the IP address has exceeded a IntruderIPAttempts -Reject threshold. If an attempt is made from a rejected address and this file does not exist, the connection is simply closed.


EZproxy V6.1 and later

If this file exists, it will be sent if a user attempts to access a Shibboleth service provider, but EZproxy receives a SAML response document that EZproxy cannot interpret properly. If this file does not exist, a default warning will be displayed to the end user.

HTML Variables

The files above may reference the following variables, although not all of these variables are available or appropriate for use in all of these files.

Variable Description
^^    Send a caret (^)
^B / ^E ^B starts and ^E ends a section of HTML that should be repeated for each database definition from config.txt, or if Option MenuByGroups is in config.txt. Only the databases that are available to the groups with which the user is associated are presented. If you would like to change the way the links behave, edit the HTML between the ^B/^E tags on the menu.htm page.
^D Send the description of a database as declared by the Description directive in config.txt
^H Send just the hostname portion of the destination URL
^L Insert the login URL for this server (e.g.
^P Insert the URL for this server (e.g.
^T Send the title of a database as declared by the Title directive in config.txt
^U Destination URL in edited format, suitable to display to the end-user in an HTML page
^V Destination URL in verbatim format, suitable for use in forming a destination URL such as for part of an "href" tag
^W Destination URL prepared to redirect user the Shibboleth WAYF (only available if Shibboleth authentication is enabled)
^0 For limit.htm, send the maximum number of logins allowed for the user
^1 For limit.htm, send "s" if the user limit is not 1, send nothing if the user limit is 1
^2 For limit.htm, send "are" if the user limit is not 1, send "is" if the user limit is 1
^{ expression} Evaluate the Expression that appears within the braces and send the resulting value

This page last revised: September 23, 2015.