Autor | Zpráva | ||
---|---|---|---|
dolly1010 Profil |
Přestěhoval jsem stránku z www.mylms.ic.cz na www.mylms.cz.
Teď bych potřeboval, aby když někdo zadá, nebo ve vyhledávači najde odkaz na původní stránku a klikne na něj, aby byl přesměrovanej přímo na novou stránku. Zkoušel jsem do souboru .htaccess vložit kód např. Redirect 301 /abcdef http://www.mylms.cz/text-digitronove-hodiny/ Redirect 301 /index.php?text=206-digitronove-hodiny http://www.mylms.cz/text-digitronove-hodiny/ přitom první řádek funguje ( www.mylms.ic.cz/abcdef ) a druhej ( www.mylms.ic.cz/index.php?text=206-digitronove-hodiny ) nefunguje. Zřejmě je problém s tím, že adresa obsahuje parametr (?), nebo že existuje. Jde s tím něco udělat, nebo bude potřeba každou stránku přesměrovat jiným způsobem? Před otazník jsem ještě zkoušel dát zpětné lomítko, ale to taky nefungovalo Redirect 301 /index.php\?text=206-digitronove-hodiny http://www.mylms.cz/text-digitronove-hodiny/ dál jsem koušel nějaký "experimenty" s RewriteRule, ale ani to se mi nepodařilo... Díky :) |
||
Kajman Profil |
Můžete použít mod_rewrite s testováním části za otazníkem v RewriteCond. Případně si přesměrování vyvolat v tom index.php.
|
||
dolly1010 Profil |
#3 · Zasláno: 8. 2. 2012, 21:22:43
Moc "mod_rewrite" nerozumím...
Kdybych si tedy zjistil parametr "text" adresy (?) a pak bych ho v podmínce vyhodnotil a podle toho bych udělal přesměrování na jinou adresu. Většina stránek odpovádá vzoru "/index.php?text=[číslo]-adresa" na staré stránce a "/text-adresa" na nové stránce. Takže by to šlo nějak rozkouskovat v php aby se ze strany www.mylms.ic.cz/index.php?text=100-clanek udělal odkaz na www.mylms.cz/text-clanek. V PHP moc neumím, ale zejtra to zkusím. Snad se budu mít čeho chytit :) |
||
dolly1010 Profil |
#4 · Zasláno: 9. 2. 2012, 19:43:24
Teď mě napadlo, že pokud budu přesměrovávat přímo z index.php, bude to jenom obyčejný přesměrování (bez "301 moved permanently"). Takže by to bylo asi opravdu lepší pořešit přes .htaccess
Nemá ještě někdo nějaký nápady? Popřípadě nejakou ukázku kódu :( |
||
Davex Profil |
Přesměrování podle parametru by se dalo udělat takto:
RewriteEngine On RewriteCond %{QUERY_STRING} ^text=[0-9]+-(.+)$ RewriteRule ^ http://www.mylms.cz/text-%1? [R,L] Z proměnné %{QUERY_STRING} se přečtou parametry, regulárním výrazem se zkontroluje, že obsahují text=[číslo]-adresa , adresu si zapamatuje do proměnné %1 , která se potom použije v přesměrování.
|
||
dolly1010 Profil |
Tohle bych asi dohromady nedal.
Díky moc, funguje to perfektně :) |
||
Časová prodleva: 25 dní
|
|||
dolly1010 Profil |
#7 · Zasláno: 7. 3. 2012, 20:35:46
Ještě takovej dotaz. Na původní stránce byli odkazy (je jich asi 5) např.
www.mylms.ic.cz/index.php?clanek=22 www.mylms.ic.cz/index.php?clanek=23 atd... Tyhle odkazy nemaj přesnej vzor jako předtím. Šli by taky nějak přesměrovat součastně s tím předchozím. Třeba na adresu www.mylms.cz/clanek-22 (nebo podobnou, na tom už nesejde) |
||
Davex Profil |
#8 · Zasláno: 8. 3. 2012, 21:23:08
Můžeš přidat další pravidlo s upraveným regulárním výrazem.
RewriteCond %{QUERY_STRING} ^clanek=([0-9]+)$ RewriteRule ^ http://www.mylms.cz/clanek-%1? [R,L] |
||
Časová prodleva: 14 let
|
0