ich versuche, eine URL-Zeichenfolge zu erstellen, die wie folgt funktioniert:url codiert vorwärts Schrägstriche meine codeigniter app brechen
/app/process/example.com/index.html
so in anderen Worten,
/app/process/$URL
ich die URL dann abrufen mit
$this->uri->segment(3);
die Schrägstriche in der URL wird natürlich ein Problem beim Zugriff auf uri Segmente sein, ich werde ahea so gehen d und URL kodieren die URL Teil:
/app/process/example.com%2Findex.html
.. aber jetzt bekomme ich nur ein 404 sagen ...
Not Found
The requested URL /app/process/example.com/index.html was not found on this server.
es scheint, dass meine URL-Codierung von Slashes bricht CI URI-Parser.
Was kann ich tun, um dieses Problem zu umgehen?
Das ist richtig. Aber auch wenn sie behoben sind, können Probleme auftreten, da der CGI-Standard, der PATH_INFO definiert, Strings benötigt, die eine Runde URL-Decodierung durchlaufen, die den Schrägstrich durchbrechen kann. Nur auf Apache können Sie stattdessen REQUEST_URI verwenden, das nicht darunter leidet ... weiß nicht, ob CI das tho verwenden kann. – bobince
Ich habe gerade dieses Problem auf einer Website behoben. Das ist ein bisschen wie ein Hack, aber es hat den Job erledigt: Ich verdopple die URL doppelt. Auf diese Weise kehrt der URL-Code von REQUEST_URI das/s nicht zu früh zurück. –
Eigentlich, was Sie wollen, ist wahrscheinlich 'AllowEncodedSlashes NoDecode' – celwell