ho un problema che non ho mai incontrato prima e penso che abbia qualcosa a che fare con la configurazione di apache, che non sono molto esperto.apache: le dieresi sfuggite nella stringa di query (URL) portano a 403
prima, c'è uno script php con un modulo di ricerca. il modulo viene trasmesso tramite POST.
quindi c'è l'elenco dei risultati di risultati di ricerca. qui la query di ricerca originale viene passata come parte dell'URL, ad esempio: search.php? id = 1234 & query = foo. questo funziona anche - fino a quando non ci sono umlaut (äöüÄÖÜß ...) caratteri trasmessi.
appena includo dieresi nella query di ricerca, la prima parte che trasmette la stringa di query come funziona il POST, ma passarlo (urlencoded) nell'URL porta ad una 403.
così:
search.php?id=1234&query=bar
funzionasearch.php?id=1234&query=b%E4r
porta a 403 (% E4 = "a" utf-8 urlencoded)search.php?id=1234&query=b%C3%A4r
porta a 403 (% C3% A4 = "a" utf-8 urlencoded)- presentazione dieresi via posta funziona
ho convertito l'applicazione da iso-8859-1 a UTF-8, ma che ha fatto alcuna differenza.
l'ho anche testato sul mio computer locale, qui funziona perfettamente - come previsto.
configurazione remota del server (in cui non funziona):
Apache/2.2.12 (Ubuntu),
PHP versione 5.2.10-2ubuntu6.7, Suhosin Patch 0.9.7, via CGI/FastCGI
configurazione locale (qui le stesse opere):
Apache/2.2.8 (Win32) PHP/5.3.5
Versione PHP 5 .3.5 tramite mod_php
qualcuno ha un idea del perché l'apache/php-cgi remoto non accetta dieresi correttamente urlencoded nel URL?
informazioni aggiuntive: ho anche provato a creare un file statico con una umlaut nel suo nome, ed entrambi /t%C3%A4st.php
e /täst.php
vengono serviti senza problemi. täst.php?foo=täst
non riesce.
nota: ?foo=%28
, dove% 28 è "(", funziona anche
pedante, lo so, ma "ß" non ha dieresi ... – Stephen
scusa :) come si chiama questo superset di tipo di caratteri speciali? – stefs
hai qualche modulo mod_security-like con alcune regole infranti? questo succede anche con qualsiasi carattere non-ascii come àéù? – arnaud576875