Unul din clienții care-și actualizează în mod consecvent serverele și sitemele ori de câte ori cei de la Microsoft scot un bnou sistem de operare a dorit să-și mute aplicațiile PHP de pe mașina cu Windows 2003 pe un server nou-nouț cu Windows 2008…
Toate bune și frumoase, am transpirat puțin până ce am găsit dll-urile necesare conexiunii la baza de date SQL 2008, am modificat și pus la loc regulile de rescriere…. când a apărut surpriza… Nici una din paginile care conțineau spații în titlu nu se încărcau și vărsau pe tot ecranul o pagină cu oroarea 404.11 – “The request filtering module is configured to deny a request that contains a double escape sequence.”
După înjurăturile de rigoare și căutări pe internet, am aflat că este un comportament normal din partea IIS să respingă orice adresă care are în componență “+”, pentru că așa se protejează ei de hacărul cel rău și, bineînțeles, nu trebuie să folosești spații în adresa paginii pentru a fii protejat.
Din fericire, există însă o portiță prin care (pentru aplicațiile vechi și nesigure) se mai poate permite folosirea + în adresă și asta se face rulând într-un cmd (pornit ca administrator) următoarea comandă:
%windir%\system32\inetsrv\appcmd set config “Default Web Site” -section:system.webServer/security/requestfiltering -allowDoubleEscaping:true
unde “Default Web Site” se înlocuiește cu numele site-ului din IIS.
Nu știu dacă are neapărat legătură, dar pentru ca totul să funcționeze și IIS-ul să-mi vadă toate resursele PHP, a fost nevoie să dau din nou drepturi utilizatorilor IIS asurpra fișierelor PHP și după încă o bere și încă o tonă de dedicații legate de morții și răniții făcute celui care a avut această idee genială… am reușit să-mi văd liniștit de salata mea.
Leave a Reply