Zadejte hledaný výraz...

Přesměrování staré URL na novou v.htaccess

Petr-K
verified
rating uzivatele
4. 5. 2016 15:03:07
Zdravím všechny,
používám soubor .htaccess, který je částečně sestaven i díky této diskuzi. Chtěl jsem do něj nyní přidat jednoduché přesměrování starých url na nové, např.:
ale výsledkem je přesměrování na nově vytvořenou url http://www.bidenko.net/about-me?page=skills
Můžete mi, prosím, poradit, jakou podmínku či příkaz do .htaccess přidat aby přesměrování proběhlo dle příkazu?
Pro jistotu připojuji celý .htaccess.
Děkuji Petr
4. 5. 2016 15:03:07
https://webtrh.cz/diskuse/presmerovani-stare-url-na-novou-v-htaccess/#reply1193800
Luděk Kvapil
verified
rating uzivatele
4. 5. 2016 15:07:31
Zkus:
---------- Příspěvek doplněn 04.05.2016 v 15:10 ----------
Někdy to redirect nefunguje.. Pak je to nutné zapsat
To skills.* značí, že za tečkou může být jakákoliv koncovka.. Pokud je to bez koncovky, tak bez .*
4. 5. 2016 15:07:31
https://webtrh.cz/diskuse/presmerovani-stare-url-na-novou-v-htaccess/#reply1193799
Petr-K
verified
rating uzivatele
4. 5. 2016 16:31:45
siva01:
Redirect 301, tak jak jsi jej zmínil, jsem také už zkoušel a nic, respektive stejný výsledek.
Nyní jsem zkusil RewriteRule a také stejný výsledek, stale se tam připojuje ?page=skills
4. 5. 2016 16:31:45
https://webtrh.cz/diskuse/presmerovani-stare-url-na-novou-v-htaccess/#reply1193798
TomasX
verified
rating uzivatele
(4 hodnocení)
5. 5. 2016 00:30:49
problém je v pořádí, to L v hranatých závorkách znamená "last", v překladu poslední a pokud pravidlo vyhovuje RewriteRule na tom řádku, už to další nebude zpracovávat, proto ti to přesměrovává špatně. Htaccess se zpracovává od prvního řádku do posledního. Stačí ten tvůj řádek s přesměrováním dát před ten blok s page. Já bych tvůj htaccess přeházel takhle:
- přesměrování na www. bych dal více na začátek (tohle zkontroluj, že ti to nic nerozbije, podle mě to je ok)
- opticky více oddělil jednotlivé bloky (to RewriteCond vždy patří k nejbližší následující RewriteRule a je dobré to brát jako odstavec), zbytečně to plete lidi, kteří to čtou (mě určitě)
- s RewriteEngine nemůžeš používat příkaz Redirect, u něho totiž není možné nastavit příznak L a zpracování pokračuje dál a další příkazy ti tam dohodí to page=skills
- tvůj redirect jsem strčil před rewrite pro page, přepsal na RewriteRule a přidal příznak L, aby to nic dalšího již nedělalo, teď by to mělo fungovat správně
Htaccess a hlavně rewrite není složitý, v dokumentaci to je krásně popsané https://httpd.apache.org/docs/trunk/rewrite/, já vím angličtina a moc textu, ale bez toho se budeš muset pořád na něco ptát a trávit tím obrovské mnosžtví času.
5. 5. 2016 00:30:49
https://webtrh.cz/diskuse/presmerovani-stare-url-na-novou-v-htaccess/#reply1193797
Petr-K
verified
rating uzivatele
5. 5. 2016 13:52:32
TomášiX, díky za rady, určitě si některé z nich vezmu k srdci. Nicméně, přesměrování stále nefunguje, stále stejný problém...
5. 5. 2016 13:52:32
https://webtrh.cz/diskuse/presmerovani-stare-url-na-novou-v-htaccess/#reply1193796
TomasX
verified
rating uzivatele
(4 hodnocení)
5. 5. 2016 14:50:35
jasně, špatně jsem to přepsal, dej tam jenom ^skills$ a už by to mělo jít, to úvodní lomítko v rewriteRule způsobuje, že apache hledá soubor na disku. Alternative je připadat přepínač PT do hranaté závorky, poté to bude rewriteRule brát jako relativní cestu, což je náš cíl.
Doplnění: ta střížka (^) před skills řiká, že cesta musí takhle začínat, pokud bys jí tam nedal, vzalo by to i adresu /xxskills. Ten dolar ($) na konci má přesně opačný význam, uvozuje konec řětězce, kdyby tam nebyl, vzalo by to tvary typu /skills2, /skills/new atd. Jedná se o tzv. regulární výraz, kdybys chtěl googlit, co vše tam můžeš zadat.
5. 5. 2016 14:50:35
https://webtrh.cz/diskuse/presmerovani-stare-url-na-novou-v-htaccess/#reply1193795
Petr-K
verified
rating uzivatele
5. 5. 2016 15:10:57
Přesto, že tyto naproté základy znám, nenapadlo mě to lomítko odstranit...
Díky již to funguje.
5. 5. 2016 15:10:57
https://webtrh.cz/diskuse/presmerovani-stare-url-na-novou-v-htaccess/#reply1193794
Pro odpověď se přihlašte.
Přihlásit