Diskuze: Změna adresy přes .htaccess

Tvůrce

Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |


Obvyklý požadavek je přesně obráceně. Zkus zagooglit "hezká URL".
Ahoj, tohle se většinou nepřevádí, ale pracuje se rovnou s tou lomítkovou variantou. Také jsem si dříve myslel, že to tu adresu převede (a asi by se to i dalo udělat), ale dělá se to tak, že si v .htaccess převedeš všechny požadavky na index. A na indexu si potom pomocí explode rozložíš adresu polde lomítek na pole. To si potom dále zpracuješ. Lépe se to dělá když máš např. MVC architekturu, ale určitě si s tím poradíš i takhle. Typuji, že nepoužíváš objekty, takže budeš muset nějak vyřešit, aby ty parametry pak viděly všechny stránky. Nevím, jak moc ošklivé je cpát je do GETu, ale asi lepší, než ti zbytečně motat hlavu s nějakým statickým registrem.
Jaký statický registr? Obsah prvního parametru GET dávám do Simple Factory. Druhý parametr se pak stane klíčem do DB.
Pár příkladů na mod_rewrite jsem našel na
http://mike.treba.cz/…a-hezke-url/
Já ten .htaccess celkem proklínal, protože jsem takhle také našel nějaké řešení a pak přestaly fungovat sessions.
Statický registr je imho nejjednodušší objektová náhrada glob. proměnných. Prostě by měl třídu s nějakým polem parametrů Trida::$clanek, Trida::$parametry. Ale imho to může prostě nacpat jako $_GET['clanek'], $_GET['parametry'], kde clanek bude první parametr v tom URI stringu.
On to objektové mít nebude, to jsem již psal, proto musí nějak vyřešit předávání dat, GET se nabízí jako přirozená cesta jak to PHP dělá, vlastně by si nasimuloval ty parametry jako by přišly normálně z GETu.
Nejjednodušší je ponechat v poli $_GET a číst ho dle potřeby. Nikdy do něj nezapisovat.
Místo do statického registru si podobná data ukládám do modelu, který mi pak rovnou poskytuje potřebné deriváty.
.htaccess používá dost specifický jazyk. Je velmi jednoduché v něm něco poplést.
Jak jednou pravil David Jančík: "Mě to ale nezajímá. Stejně jako nechci
pochopit ženu, tak nechci pochopit .htaccess." 
Dan modely ani objekty nemá, proto si buď udělá statickou třídu, nebo zapíše do GET nebo použije něco ošklivého jako GLOBALS. Zapsat do GET mi přijde jako nejlepší možnost pro jeho případ, udělá to jen jednou a zbytek skriptů se bude tvářit jako by parametry přišly od uživatele.
Našel jsem si tohle -
# mujweb.cz/?page=neco > mujweb.cz/neco/
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ ?page=$1
a
# mujweb.cz/?page=neco&stranka=druha > mujweb.cz/neco/druha
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ ?page=$1&stranka=$2
ale nevím jak to spojit. jak jsem již psal,to &stranka= tam nebude vždy..
No psal jsem ti, že bych to takhle nepřeváděl, ale když na tom trváš...
RewriteEngine On tam musí být každopádně
To Base záleží na daném hostingu, někde to má být, někde ne. Musíš
zkusit.
2 podmínky jsou stejné, to určuje že se má přesměrovat jen tehdy, když soubor neexistuje. Díky tomu se ti nebudou přesměrovávat obrázky a podobně.
Rewrite rule použij to druhé, jen nechápu proč tam je page a stránka. To je trochu prase kód. Buď anglicky, nebo česky. A hlavně to znamená to samé. Smysl by dávala třeba sekce a stranka.
Možná k těm parametrům dává smysl spíše clanek a parametr, skript a akce a podobně.
Zobrazeno 10 zpráv z 10.