Lepší detekce requestUri a scriptPath
- pawell
- Člen | 3
Ahoj,
v HttpRequestFactory::createHttpRequest() se pomocí některých položek ze
$_SERVER detekují requestUri a scriptPath. U mě však detekce scriptPath
selhává, neboť $_SERVER[‚SCRIPT_NAME‘] == $_SERVER[‚REQUEST_URI‘],
ač by jeden předpokládal, že bude $_SERVER[‚SCRIPT_NAME‘] ==
‚/index.php‘
Detekce ze ZF mi funguje
https://github.com/…est/Http.php#L467
- David Grudl
- Nette Core | 8218
Pošli prosím víc informací. Jaký máš server, na jaké URL přistupuješ a jaké jsou hodnoty v poli $_SERVER.
- pawell
- Člen | 3
Pošli prosím víc informací.
Rewrite v apachovi (v configu) přesměrovává vše, co neexistuje, na index.php. Při přístupu na neexistující cestu, se sice správně spustí daný index.php, ale SCRIPT_NAME na něj neukazuje.
[SCRIPT_URL] ⇒ /sign/in/
[SCRIPT_URI] ⇒ http://nejaka.domena.cz/sign/in/
[SERVER_SOFTWARE] ⇒ Apache/2.2.16 (Win32) PHP/5.3.3
[DOCUMENT_ROOT] ⇒ nejaka/cesta/www
[SCRIPT_FILENAME] ⇒ nejaka/cesta/www/index.php
[REQUEST_URI] ⇒ /sign/in/
[SCRIPT_NAME] ⇒ /sign/in/
[PHP_SELF] ⇒ /sign/in/
Z tohoto důvodu se scriptPath nastaví na /sign/in/ a requestUri na / což není správně :(
V Zendu tam proto IMHO je ta detekce basename($_SERVER[‚SCRIPT_NAME‘]) == basename($_SERVER[‚SCRIPT_FILENAME‘]) a jinak se to zpětně určí z toho $_SERVER[‚SCRIPT_FILENAME‘].
- Filip Procházka
- Moderator | 4668
ale to už přece funguje, ne ? https://github.com/…99c186ec1865
Editoval HosipLan (26. 11. 2010 18:08)