Autor | Zpráva | ||
---|---|---|---|
Supel Profil * |
#1 · Zasláno: 21. 1. 2012, 10:49:46
Zdravím
Mám problém s přesměrováním includované hlavní stránky. Před lety jsem udělal chybu a místo toho, abych do MENU/Úvod dal adresu http://www.r-s.wz.cz, inkludoval jsme tam obsah přes index.php?page=00. Nyní jsme to opravil, tak jak to mělo být ze začátku, jenže již vzniklo cca 1600 odkazů s index.php?page=00. Všechny tyto odkazy nyní končí v 404:-( Dokážete mne poradit? Myslím, že Webzdarma pustí jen redirect. Já jsme se pokoušel sám, ale dosáhl jsem jen zacyklení nebo nefunkčnosti. Děkuju za odpověď. Supel |
||
Rellik Profil |
#2 · Zasláno: 21. 1. 2012, 11:35:06
Taky zdravím. Nějak nechápu pointu dotazu. Odkazované stránky jak vidno fungují v pořádku - zkoušel sem klikat na různé odkazy, ale ani jednou jsem eror nedostal. Krom toho ?page=00
Takže poradit asi nepůjde, když nebude pořádně vysvětlen problém. A ukázku, kde je těch 1600 odkazů.. |
||
Supel Profil * |
#3 · Zasláno: 21. 1. 2012, 13:00:09
Rellik:
Problém je v tom, že nechci, aby se mi zobrazovala 404 na ?page=00 a to jde udělat jen přesměrováním. Je blbé, když přijde návštěvník a skončí na 404. Nemůžu říct všem, ať si přijmenují odkaz a taky nechci používat ?page=00 Ty odkazy jsou naměřeny na google webmaster tool: Nejčastěji odkazovaný obsah /index.php?page=00 1 627 http://www.r-s.wz.cz/ /index.php?page=22 28 /index.php?page=stenatka 17 /index.php?page=23 7 |
||
Supel Profil * |
#4 · Zasláno: 22. 1. 2012, 19:52:56
Redirect 301 /index.php?page=00 http://www.r-s.wz.cz/ Zkoušel jsem tento redirect, ale nefunguje mi. |
||
Alutom Profil * |
#5 · Zasláno: 23. 1. 2012, 20:06:08
Ahoj,
direktiva Redirect umí podle všeho přesměrovat pouze na jiný server či cestu, ale nemůže změnit GET data poslaná v adrese. Tvůj případ by se ale určitě dal vyřešit i přímo v PHP: if(isset($_GET['page']) && $_GET['page']=='00') { header('HTTP/1.0 301 Moved Permanently'); header('Location: http://www.r-s.wz.cz/'); } Alutom |
||
Supel Profil * |
#6 · Zasláno: 23. 1. 2012, 21:49:16
Díky moc, ale nepomohl by si mi to ještě zaimplementovat do mého kódu?
Přiznávám, moc mi to nejde. <?php if(!isset($_GET['page'])) include "index_files/index3.htm"; else switch ($_GET["page"]) { case "01": include "kniha.htm"; break; . . . . default: include "index_files/404.php"; break; } ?> |
||
Alutom Profil |
Nejjednodušší bude, když to dáš hned úplně na začátek za počáteční <?php. Dej si pozor, aby před <?php nebyly žádné další znaky, jinak se přesměrování neprovede...
|
||
Supel Profil * |
#8 · Zasláno: 24. 1. 2012, 19:58:07
Alutom:
Warning: Cannot modify header information - headers already sent by (output started at /3w/wz.cz/r/r-s/index.php:338) in /3w/wz.cz/r/r-s/index.php on line 536 Je zajímavé, že na jednom webu, kde jsme to zkoušel, to funguje, ale tam, kde to chci použít, ne:-D |
||
Keeehi Profil |
#9 · Zasláno: 24. 1. 2012, 20:00:27
|
||
Alutom Profil |
Supel:
Já ti říkal, že to máš dát hned na začátek, ale tys to dal na řádek 536 :D. Abychom si tedy rozuměli, kód bude vypadat po úpravě následovně: <?php // tohle musí být 1. řádek souboru // přesměrování: if(isset($_GET['page']) && $_GET['page']=='00') { header('HTTP/1.0 301 Moved Permanently'); header('Location: http://www.r-s.wz.cz/'); } // původní kód: if(!isset($_GET['page'])) include "index_files/index3.htm"; else switch ($_GET["page"]) { case "01": include "kniha.htm"; break; . . . . default: include "index_files/404.php"; break; } ?> A jinak samozřejmě zkontroluj existenci BOM signatury. Aby to fungovalo, nesmí tam být. Více se dozvíš v odkazu od Keeehi(ho). |
||
Supel Profil * |
#11 · Zasláno: 24. 1. 2012, 21:02:04
Alutom:
Já to mám na začátku <?php, jenže ten začátek je na 528 řádku. Mám asi chybu v tom, že jsem špatně poskládat měnící se title a description. Což nevyřeším, protože do php jsme se pouštět nechtěl, jenže to má odpovědi na mé chyby a nemožnost něco udělat. Mám to takhle: <meta name="description" lang="cs" content="<?php switch ($_GET['page']): case "xyz": echo "XYZ :: "; break; endswitch; ?> <title><?php switch ($_GET['page']): case "xyz": echo "XYZ:: "; break; endswitch; ?> pak následuje include, které jsme tu už dával. To bude asi ta chyba. |
||
panther Profil |
#12 · Zasláno: 24. 1. 2012, 21:12:34
Supel:
„Já to mám na začátku <?php, jenže ten začátek je na 528 řádku.“ musí to být na úplně prvním řádku toho souboru, do nějž includuješ zbytek. Představ si include jako Ctrl+V, proto první řádek includovaného souboru není první řádek výsledného dokumentu. |
||
Supel Profil * |
#13 · Zasláno: 24. 1. 2012, 21:34:48
panther:
Udělal jsme to jak napsal Alutom, ale vyhodilo to tu chybovku:-( |
||
panther Profil |
#14 · Zasláno: 24. 1. 2012, 21:37:13
|
||
Supel Profil * |
#15 · Zasláno: 24. 1. 2012, 21:39:31
panther:
To bude trvat déle, to už tohle vlákno nebude dávno aktivní. Musím nastudovat, co je BOM a to co psal Keeehi. Jak už jsme říkal, php jsme chtěl použít jen pro include, ale pak se to začalo komplikovat:-( |
||
Alutom Profil |
#16 · Zasláno: 25. 1. 2012, 02:44:46
Supel:
„Já to mám na začátku <?php, jenže ten začátek je na 528 řádku.“ Tak jinak. Na úplný začátek index. php dej tohle: <?php if(isset($_GET['page']) && $_GET['page']=='00') { header('HTTP/1.0 301 Moved Permanently'); header('Location: http://www.r-s.wz.cz/'); } ?> Neřeš, co se dělá nebo nedělá dál, tohle přesměrování se prostě provede, pokud je ?page=00. Řádek číslo jedna tohoto kódu musí být řádek číslo jedna v souboru index.php. Líp už to fakt popsat neumím, tak snad je to teď jasné. |
||
Supel Profil * |
#17 · Zasláno: 25. 1. 2012, 19:10:57
Si měl říct hned, že až tak nahoru=-o
<?php if(isset($_GET['page']) && $_GET['page']=='00') { header('HTTP/1.0 301 Moved Permanently'); header('Location: http://www.r-s.wz.cz/'); } ?> <?php echo "<?xml version=/'1.0/' encoding=/'windows-1250/'?> "?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> |
||
Alutom Profil |
#18 · Zasláno: 25. 1. 2012, 21:31:36
Supel:
„Si měl říct hned, že až tak nahoru=-o“ Já totiž netušil, že před tím skriptem ještě něco máš... Navíc jsem psal: „Dej si pozor, aby před <?php nebyly žádné další znaky, jinak se přesměrování neprovede...“ Ale nevadí, hlavně že už to konečně funguje :) |
||
Supel Profil * |
#19 · Zasláno: 26. 1. 2012, 19:33:38
Alutom:
Díky moc za trpelivost. Snad už se vyvaruju dalšího rozvoje PHP:-D Nebo se to konečně naučím:-D |
||
Časová prodleva: 12 let
|
0