| Description | This article describes an issue with the Static URL Filter that prevents it from functioning as expected. In some cases, URLs that are explicitly allowed in the Static URL Filter list are still being blocked. |
| Scope | FortiGate v7.2, FortiGate v7.4. |
| Solution |
This is how the FortiGate firewall policy with proxy mode canonicalizes a URL. For HTTP URL query canonicalization, the following special character sets are defined:
Conditions:
For example, static URL filtering is configured as follows.
internal.fortinet.it/login?next=/builder/menu/46/474/list/?tab=1820
FortiGate processes the HTTP traffic internally as follows.
GET /login?next=%2Fbuilder%2Fmenu%2F46%2F474%2Flist%2F%3Ftab%3D1820 HTTP/1.1 Chrome/140.0.0.0 Safari/537.36 */*;q=0.8,application/signed-exchange;v=b3;q=0.7
In this case, FortiGate treats '=' as a reserved character as follows while canonicalizing the percent-encoding URL. %3D represents '=', and they are in condition 2.2; therefore, they are kept encoded. This result can cause the Static URL Filter to not function as expected.
To avoid this issue, it recommends fully percent-encoding it in the URL filter entry: config webfilter urlfilter
edit 1
set name "test-1207683"
config entries
edit 1
set url "internal.fortinet.it/login?next=%2Fbuilder%2Fmenu%2F46%2F474%2Flist%2F%3Ftab%3D1820"
set action allow
|
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2025 Fortinet, Inc. All Rights Reserved.