Zadejte hledaný výraz...

Přesměrování vyhledávání

David Flídr
verified
rating uzivatele
(22 hodnocení)
10. 5. 2012 18:21:00
Zdravím,
mám takový menší problém. Na webu mám vyhledávací formulář, u kterého chci aby se mi po zadání nějakého slova např. madonna a odeslání formuláře, převedla stránka do formátu neco.cz/mp3/madonna případně neco.cz/mp3/madonna+down+atd . Udělal jsem si v htaccess řádek RewriteRule ^mp3/(+)/?$ /index.php?page=hledej&search=$1&vyhledavani=mp3&submit=%A0 což funguje bez problémů, ale potřebuji aby se adresa přesměrovala ihned po odeslání formuláře. Nemohu do
při odeslání zadat přímo /mp3/madonna+down/, jelikož neznám co bude uživatel vyhledávat. Formulář odesílám přes GET, tudíž mám při odeslání v adrese formuláře něco takového index.php?page=hledej&search=madonna&vyhledavani=mp3&submit=%A0. Zkusil jsem při odeslání formuláře a načtení nové stránky ihned na začátku vložit
header("HTTP/1.1 301 Moved Permanently");
header("location:"./mp3/madonna+down");
header("Connection: close");
Ale hlásí mi to příliš mnoho přesměrování. Snad jsem se vyjádřil alespoň trochu pochopitelně a někdo mi poradí.
10. 5. 2012 18:21:00
https://webtrh.cz/diskuse/presmerovani-vyhledavani#reply763440
Podívejte se, jak zvýrazňovač obarvil váš kód.
Vidíte tam tu syntaktickou chybu v druhém řádku?
A hlavička "Location" vyžaduje absolutní URL, tj. včetně domény. Relativní nestačí.
10. 5. 2012 21:10:31
https://webtrh.cz/diskuse/presmerovani-vyhledavani#reply763439
Jan Matoušek
verified
rating uzivatele
(12 hodnocení)
10. 5. 2012 21:52:50
Napsal Martin Schlemmer;793930
A hlavička "Location" vyžaduje absolutní URL, tj. včetně domény. Relativní nestačí.
u location by měla fungovat i relativní adresa. Již dlouho jsem nepoužíval, ale jestli si dobře pamatuji, tak jsem zadával i relativní adresy.
Chyba tam každopádně je:-)
10. 5. 2012 21:52:50
https://webtrh.cz/diskuse/presmerovani-vyhledavani#reply763438
Relativní adresa je chybná, ačkoliv ji většina prohlížečů pochopí.
Relative URL example
This example, is incorrect according to the standard, which specifies the URI returned to be absolute. However, most popular browsers will accept a relative URL.
http://en.wikipedia.org/wiki/HTTP_location#Relative_URL_example
10. 5. 2012 22:57:30
https://webtrh.cz/diskuse/presmerovani-vyhledavani#reply763437
David Flídr
verified
rating uzivatele
(22 hodnocení)
11. 5. 2012 08:17:26
Určitě mám u Location absolutní adresu a je to ve správném tvaru. Jen tady na webtrhu se mi v rychlosti ten zápis trochu zkomolil
Takže mám např.
11. 5. 2012 08:17:26
https://webtrh.cz/diskuse/presmerovani-vyhledavani#reply763436
naniccz
verified
rating uzivatele
(3 hodnocení)
11. 5. 2012 09:16:08
Jestli to chápu správně, po odeslání formuláře se jde na index.php?..., který přes PHP provede přesměrování na /mp3/....
Dále existuje RewriteRule ^mp3/(+)/?$ /index.php?page=hledej&search=$1&vyhledavani=mp3&su bmit=%A0 ,
což způsobí, že se z /mp3/... (aniž by se něco načítalo) jde zase na index.php?...., který provede redirect, a takhle pořád dokola
11. 5. 2012 09:16:08
https://webtrh.cz/diskuse/presmerovani-vyhledavani#reply763435
Tak tak, vždyť vám to říká i ta hláška z prvního příspěvku.
Prostě jste vytvořil smyčku přesměrování. Kód pro přesměrování přesuňte tam, kde se provede jen jednou, při skutečném odeslání formuláře.
11. 5. 2012 09:49:59
https://webtrh.cz/diskuse/presmerovani-vyhledavani#reply763434
David Flídr
verified
rating uzivatele
(22 hodnocení)
12. 5. 2012 08:38:41
řekněme že přesměrování v php odkažu, jak tedy v .htaccess udělat aby se mi při odeslání formuláře, který bude mít ve FORM action /index.php?page=hledej&search=$1&vyhledavani=mp3&su bmit=%A0, odkaz přesměroval přímo na adresu www.neco/mp3/madonna+down/ ? díky za každou radu
12. 5. 2012 08:38:41
https://webtrh.cz/diskuse/presmerovani-vyhledavani#reply763433
Na čistou adresu musíte přesměrovat vy. Akorát to musíte udělat jen jednou, pouze při odeslání formuláře.
12. 5. 2012 12:55:58
https://webtrh.cz/diskuse/presmerovani-vyhledavani#reply763432
Pro odpověď se přihlašte.
Přihlásit