Autor | Zpráva | ||
---|---|---|---|
miro.k Profil |
Ahojte, poprosím Vás o radu.
V Google Webmaster Tools som zistil, že Google mi indexuje stránky s URL adresou v tvare: http://www.hocico.sk/kategoria/strana-1.php/strana-1.php .
Súbor "strana-1.php" sa nachádza v adresári "kategoria" a neexistuje tam uz ziadny iny podadresar, preto takáto URL adresa by mala vyhodiť kód 404. Po zadaní tejto URL adresy do prehliadača som z hrôzou zistil, že takáto adresa nevygeneruje chybu 404, ale zobrazí stránku "strana-1.php". Táto stránka je však zobrazená nekorektne, nakoľko sa nenačíta css súbor a navyše mi generuje linky na neexistujúce stránky. Prosím Vás, vie mi niekto poradiť kde môže byť chyba? Ďakujem, Miro |
||
DJ Miky Profil |
#2 · Zasláno: 3. 1. 2014, 16:18:32
„Prosím Vás, vie mi niekto poradiť kde môže byť chyba?“
Primárně v tom, že se na danou stránku Google nějakým odkazem dostal, a sekundárně v tom, že nevyhodí chybu 404 (nebo alespoň nepřesměruje s kódem 301 na správnou adresu). Bez dalších informací ti těžko může někdo podrobněji poradit. Ideálně je potřeba opravit obě chyby, tj. odstranit odkaz vedoucí na tuto adresu a zajistit správné vyhození 404 na neexistujících stránkách. |
||
miro.k Profil |
Ten odkaz na neexistujúcu stránku sa tam dostal z externého prostredia a nemám možnosť ovplyvniť jeho odstránenie (je to zahraničná nereagujúca webstránka)
Ja musím vyriešiť, prečo sa na danej neexistujúcej adrese vôbec zobrazuje nejaký obsah, ktorý tam nemá čo hľadať a nie 404 stránka. Tenko vypísaná časť URI adresy je správna, hrubo zobrazená tam nemá čo hľadať: http://www.hocico.sk/kategoria/strana-1.php /strana-1.php .
Lomítko v URI adrese indikuje adresár a keď v adresári nič nie je, server predsa zobrazuje súbor "index.html". V mojom prípade neexistuje adresár "strana-1.php" a teda ani súbor "index.html" a mal by sa zobraziť kód 404. Napriek tomu sa zobrazí súbor "stránka-1.php" z korektnej časti URI adresy. Jediný spôsob ako to ošetriť, ma teraz napadá, presmerovanie pomocou mod rewrite v .htaccess. Ale aj tak ma štve, že neviem prísť na dôvod toho nekorektného zobrazovania. |
||
Davex Profil |
miro.k:
„Lomítko v URI adrese indikuje adresár“ Nemusí to být jen pro určení adresáře. Pokud existuje skript strana-1.php , tak se vše za lomítkem předá tomuto skriptu v CGI proměnné PATH_INFO.
Do toho skriptu by mělo stačit přidat na začátek přibližně něco takového: <?php if (!empty($_SERVER["PATH_INFO"])) { header("HTTP/1.0 404 Not Found"); header("Status: 404 Not Found"); // odstranění části PATH_INFO z adresy $url = htmlspecialchars(str_replace($_SERVER["PATH_INFO"], "", $_SERVER["REQUEST_URI"]), ENT_QUOTES); die("<meta charset='utf-8'>Adresa stránky je chybná. Pokračujte prosím na adresu <a href='$url'>$url</a>. Ta by už mohla být správná."); } |
||
Časová prodleva: 11 let
|
0