Autor Zpráva
jindrakuba
Profil
Zdravím,
potřeboval bych poradit s přesměrováním pomocí .htaccess souboru.

Mám adresu : /cokoliv/novinky/stranka
Potřebuji dostat adresu : /novinky/stranka

cokoliv a stranka jsou proměnné (berte jako náhodné slovo)

Zkoušel jsem toho už hodně, ale vůbec si nevím rady jak na to...

Neví někdo, jak by vypadal zápis?
juriad
Profil
Toto vezme jakoukoli adresu, která obsahuje tři části oddělené lomítky a tu první část zahodí. Toto je obecnější než chceš:
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /$2/$3

Chceš-li to aplikovat jen na novinky:
RewriteRule ^([^/]*)/(novinky)/([^/]*)$ /$2/$3
RewriteRule ^([^/]*)/novinky/([^/]*)$ /novinky/$2 # bez zapamatováni novinek
RewriteRule ^[^/]*/novinky/([^/]*)$ /novinky/$1 # bez zapamatování první části

Význam těch znaků:
(...) - závorka je část, kterou si má uložit do proměnné $n, kde n je pořádové číslo závorky
[...] - je seznam povolených znaků
[^/] - povolí vše kromě (vyjádřeno ^) lomítka (týká se jednoho znaku)
...* - libovolný počet opakování vzoru ...
^, $ na začátku a na konci říká, že je to začátek a konec

Tedy ten úplně první výraz čti jako:
začátek, lomítko, libovolný počet nelomítek zapamatovaný, lomítko, libovolný počet nelomítek zapamatovaný, lomítko, libovolný počet nelomítek zapamatovaný, konec
jindrakuba
Profil
juriad, moc děkuji. Povedlo se ti vyřešit celý problém + jsi mi dovedl podat informaci tak, že jsem vše pochopil :) Díky moc!
Jackill
Profil
Dobrý den,
mám podobný problém, ale trochu se liší:
Mám stránky kategorií, které systém nedovolí jednoduše upravit, proto si musím poradit přes .htaccess.
Příklad kategorie:
http://www.pokeria.cz/6-5-karty-na-poker

potřebuji vždy odstranit první číslici (nebo číslo) a pomlčku, tedy aby tvar byl:
http://www.pokeria.cz/5-karty-na-poker

nebo jiný příklad:
http://www.pokeria.cz/47-46-08-sport-a-volny-cas
změnit na
http://www.pokeria.cz/46-08-sport-a-volny-cas

Zároveň jsou tam ale stránky typu:
http://www.pokeria.cz/content/1-obchodni-podminky
u kterých naopak musí celá URL zůstat, tedy něco jako dát tam podmínku, že v té sekvenci nesmí být "content".

Půjde to vůbec?
Keeehi
Profil
RewriteRule ^\d+-(.*)$ $1
Není spíš jednodušší říct, že musí začítnat číslem?
Kajman
Profil
Jackill:

Moc nechápu, jak by měl server poznat, že 46-08-sport-a-volny-cas je už konečná varianta a nemá se přesměrovat pro ostranění čísla 46 podobně, jak při odstranění čísla 6 v prvním příkladě.
Davex
Profil
Jackill:
Mám stránky kategorií, které systém nedovolí jednoduše upravit, proto si musím poradit přes .htaccess.
Změnit strukturu adres bez úpravy systému mi nedává smysl. Ten systém by se měl minimálně upravit, aby vytvářel odkazy v požadované podobě a dokázal nové adresy správně zpracovat. Řešit něco podobného v konfiguraci webserveru je špatná cesta.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0