Apache 2.4.60: Problém se zakódovaným znakem otazníku (?) v URL (%3F) způsobí chybu 403
Apache od verze 2.4.60 z důvodů zvýšení bezpečnosti „vypíná“ podporu pro znaky „%3F“ v URL, které při routování URL adres prochází přes pravidla modulu mod_rewrite, tedy například RewriteRule. Pokud se vám v takové URL objeví zakódovaný znak otazníku (?), který je reprezentován znaky „%3F“, tak zpracování skončí chybou 403.
Od stejné verze 2.4.60 je současně zaveden nový flag „UnsafeAllow3F“, kterým můžete znaky %3F dodatečně povolit v pravidlech mod_rewrite:
RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{REQUEST_URI} \.(php|xml|pdf)*$ RewriteRule .* /index.php?wu=/$0 [NE,QSA,L,UnsafeAllow3F]
O flagu se dočtete na oficiálních stránkách Apache. Použití znaku %3F se řeší například na stackoverflow.com.
Obecně se doporučuje nový flag nepoužívat. Místo něj raději zamezte, aby se %3F dostalo do URL standardní cestou. Můžete znak otazníku pomocí JavaScriptu nahradit za jiný znak (nebo spíše sekvenci znaků), které pak v PHP převedete zpět na otazník, anebo řetězec v JavaScriptu zakódujte pomocí Base64.