# The url filter file used by the crawl command.

# Better for intranet crawling.
# Be sure to change MY.DOMAIN.NAME to your domain name.

# Each non-comment, non-blank line contains a regular expression
# prefixed by '+' or '-'.  The first matching pattern in the file
# determines whether a URL is included or ignored.  If no pattern
# matches, the URL is ignored.

# skip file:, ftp:, & mailto: urls
-^(?:file|ftp|mailto):

# skip image and other suffixes we can't yet parse
-(?i)\.(?:gif|jpg|ico|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|exe|png)$

# skip URLs containing certain characters as probable queries, etc.
-[?*!@=]

# skip .fr .org and .net domains
-^[^/]*//[^/]*\.fr/
-^[^/]*//[^/]*\.org/
-^[^/]*//[^/]*\.net/

# accept everything else
+.
