| # |
| # Sample rule file for the -m (remapping option) |
| # |
| # This file has three fields: operation, regex, remapping |
| # |
| # The operation is a combination of the following letters: |
| # |
| # r - rewrite the matched string with the remapping pattern |
| # i - case-insensitive matching |
| # g - repeat until no match (used with "r") |
| # e - exit (with success) if we match this pattern, do not process |
| # subsequent rules |
| # s - start over from the first rule if we match this pattern |
| # a - abort (refuse the request) if we match this rule |
| # G - this rule applies to TFTP GET requests only |
| # P - this rule applies to TFTP PUT requests only |
| # |
| # The regex is a regular expression in the style of egrep(1). |
| # |
| # The remapping is a pattern, all characters are verbatim except \ |
| # \0 copies the full string that matched the regex |
| # \1..\9 copies the 9 first (..) expressions in the regex |
| # \\ is an escaped \ |
| # |
| # "#" begins a comment, unless \-escaped |
| # |
| ri ^[a-z]: # Remove "drive letters" |
| rg \\ / # Convert backslashes to slashes |
| rg \# @ # Convert hash marks to @ signs |
| rg /../ /..no../ # Convert /../ to /..no../ |
| e ^ok/ # These are always ok |
| r ^[^/] /tftpboot/\0 # Convert non-absolute files |
| a \.pvt$ # Reject requests for private files |