checklink - check the validity of links in an HTML or XHTML document
checklink [ options ] uri ...
This manual page documents briefly the checklink command, a.k.a. the W3C® Link Checker.
checklink is a program that reads an HTML or XHTML document, extracts a list of anchors and links and checks that no anchor is defined twice and that all the links are dereferenceable, including the fragments. It warns about HTTP redirects, including directory redirects, and can check recursively a part of a web site.
The program can be used either as a command line tool or as a CGI script.
This program follow the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below.
- -?, -h, --help
Show summary of options.
- -V, --version
Output version information.
- -s, --summary
Show result summary only.
- -b, --broken
Show only the broken links, not the redirects.
- -e, --dir-redirects
- -r, --recursive
Check the documents linked from the first one.
- -D, --depth n
Check the documents linked from the first one to depth n (implies --recursive).
- -l, --location uri
Scope of the documents checked (implies --recursive). Can be specified multiple times in order to specify multiple recursion bases. If the URI of a candidate document is downwards relative to any of the bases, it is considered to be within the scope. If not specified, the default is the base URI of the initial document, for example for http://www.w3.org/TR/html4/Overview.html it would be http://www.w3.org/TR/html4/.
- -X, --exclude regexp
Do not check links whose full, canonical URIs match regexp. Note that this option limits recursion the same way as --exclude-docs with the same regular expression would.
- --exclude-docs regexp
In recursive mode, do not check links in documents whose full, canonical URIs match regexp. This option may be specified multiple times.
- --suppress-redirect URI->URI
Do not report a redirect from the first to the second URI. The "->" is literal text. This option may be specified multiple times. Whitespace may be used instead of "->" to separate the URIs.
- --suppress-redirect-prefix URI->URI
Do not report a redirect from a child of the first URI to the same child of the second URI. The \"->\" is literal text. This option may be specified multiple times. Whitespace may be used instead of "->" to separate the URIs.
Do not report warnings about temporary redirects.
- --suppress-broken CODE:URI
Do not report a broken link with the given CODE. CODE is the HTTP response, or -1 for robots exclusion. The ":" is literal text. This option may be specified multiple times. Whitespace may be used instead of ":" to separate the CODE and the URI.
- --suppress-fragment URI
Do not report the given broken fragment URI. A fragment URI contains "#". This option may be specified multiple times.
- -L, --languages accept-language
Accept-LanguageHTTP header to send. In command line mode, this header is not sent by default. The special value
autocauses a value to be detected from the
LANGenvironment variable, and sent if found. In CGI mode, the default is to send the value received from the client as is.
- -R, --no-referer
Do not send the
- -q, --quiet
No output if no errors are found. Implies --summary.
- -v, --verbose
- -i, --indicator
Show progress while parsing as percentage of lines processed. No indicator is shown for documents containing no linefeeds.
- -u, --user username
Specify a username for authentication.
- -p, --password password
Specify a password for authentication.
Hide 401's that are in the same realm as the document checked.
- -S, --sleep secs
Sleep the specified number of seconds between requests to each server. Defaults to 1 second, which is also the minimum allowed.
- -t, --timeout secs
Timeout for requests, in seconds. The default is 30.
- -C, --connection-cache number
Maximum number of cached connections. Using this option overrides the
Connection_Cache_Sizeconfiguration file parameter, see its documentation below for the default value and more information.
- -d, --domain domain
Perl regular expression describing the domain to which the authentication information (if present) will be sent. The default value can be specified in the configuration file. See the
Trustedentry in the configuration file description below for more information.
- --masquerade "real-prefix surrogate-prefix"
Perform a simple string substitution: URIs which begin with the string
real-prefixare rewritten using the
surrogate-prefixbefore being dereferenced. Useful for making a local directory masquerade as a remote one. For example:
--masquerade "http://example.com/x/y/z/ file:///my/local/dir/"
If the document being checked contains a link to http://example.com/x/y/z/foo.html, then the local file system will be checked for file:///my/local/dir/foo.html.
--masquerade takes a single argument consisting of two URIs, separated by whitespace. The quote marks are not part of the argument, but one usual way of providing a value with embedded whitespace is to enclose it in quotes.
- -H, --html
The main configuration file. You can use the W3C_CHECKLINK_CFG environment variable to override the default location.
Trustedspecifies a regular expression for matching trusted domains (ie. domains where HTTP basic authentication, if any, will be sent). The regular expression will be matched case insensitively against host names. The default behavior (when unset, that is) is to send the authentication information only to the host which requests it; usually you don't want to change this. For example, the following configures only the w3.org domain as trusted:
Trusted = \.w3\.org$
Allow_Private_IPsis a boolean flag indicating whether checking links on non-public IP addresses is allowed. The default is true in command line mode and false when run as a CGI script. For example, to disallow checking non-public IP addresses, regardless of the mode, use:
Allow_Private_IPs = 0
Forbidden_Protocolsis a comma separated list of additional protocols/URI schemes that the link checker is not allowed to use. The
mailtoschemes are always forbidden, and so is the
filescheme when running as a CGI script.
CSS_Validator_URIare formatted URIs to the respective validators. The
%sin these will be replaced with the full "URI encoded" URI to the document being checked, and shown in the link checker results view in the online/CGI version. The defaults are:
Markup_Validator_URI = http://validator.w3.org/check?uri=%s CSS_Validator_URI = http://jigsaw.w3.org/css-validator/validator?uri=%s
Doc_URI = http://validator.w3.org/docs/checklink.html
Connection_Cache_Sizeis an integer denoting the maximum number of connections the link checker will keep open at any given time. The default is:
Connection_Cache_Size = 2
checklink uses the libwww-perl library which has a number of environment variables affecting its behaviour. See "SEE ALSO" for some pointers.
If set, overrides the path to the configuration file.
The documentation for this program is available on the web at http://validator.w3.org/docs/checklink.html.
This program was originally written by Hugo Haas <email@example.com>, based on Renaud Bruyeron's checklink.pl. It has been enhanced by Ville Skyttä and many other volunteers since. Use the <firstname.lastname@example.org> mailing list for feedback, and see http://validator.w3.org/docs/checklink.html#csb for more information.
This manual page was originally written by Frédéric Schütz <email@example.com> for the Debian GNU/Linux system (but may be used by others).
This program is licensed under the W3C® Software License, http://www.w3.org/Consortium/Legal/copyright-software.