Když chcete vytvořit odkaz na adresář (např. http://jakub.vrana.cz/utility/
), je vhodné na konci cesty uvádět lomítko, protože při dotazu bez lomítka vrátí server nejprve přesměrování na cestu s lomítkem a zbytečně se tak provádí o jeden dotaz-odpověď navíc. Platí to samozřejmě i při vytváření relativních odkazů. Ověřit to můžete jednoduchým skriptem:
<?php // s využitím zázemí PHP $fp = fopen($_GET["url"], "r"); $meta_data = stream_get_meta_data($fp); echo implode("\n", $meta_data["wrapper_data"]); fclose($fp); // ručně pomocí funkce fsockopen $url = parse_url($_GET["url"]); $fp = fsockopen($url["host"], 80); fwrite($fp, "GET ". ($url["path"] ? $url["path"] : "/") . ($url["query"] ? "?$url[query]" : "") ." HTTP/1.1\r\n"); fwrite($fp, "Host: $url[host]\r\n"); fwrite($fp, "\r\n"); while (strlen(trim($line = fgets($fp), "\r\n")) && !feof($fp)) { echo $line; } fclose($fp); ?>
V PHP 5 je k dispozici také funkce get_headers.
Lomítkem nemusí být ukončen odkaz do kořenového adresáře (např. http://www.example.com
), protože v tom případě lomítko doplní rovnou prohlížeč, jeho uvedením ale rozhodně nic nezkazíte.
Častou chybou je také odkazování se na index.php
nebo jiné soubory, které se používají jako výchozí pro adresář (v Apache se to nastavuje direktivou DirectoryIndex). Chyba je to proto, že pro všechny aplikace je /
něco jiného než /index.php
, takže se tříští pozornost vyhledávačů a matou se cache, navíc odkazy nejsou tak pěkné. Pokud se chcete odkázat např. na svou domácí stránku, použijte <a href=".">
. Pokud chcete domácí stránce předat parametry, stačí použít ?parametry
, při odkazu z jiné stránky potom raději ./?parametry
(podle nové normy vede odkaz začínající otazníkem do aktuálního adresáře, podle staré potom k aktuálnímu souboru).
Diskuse je zrušena z důvodu spamu.