Diskuze: Úprava URL adresy webu
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 11 zpráv z 11.
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 |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Je to vysvětlené tady v PHP MVC tutorialu. V podstatě znásilníš apache k tomu, aby vzali adresu a dali ji indexu jako get parametr, takže z tohle:
www.neco.cz/novinky/2016/brezen
se pošle nějakýmu tvýmu souboru jako get parametr, třeba takhle
www.neco.cz/index.php?q=novinky/2016/brezen
Pak si v aplikaci rozsplituješ (v php explode
) query string podle lomítka a
máš pole s parametry 
Odkaz na tutorial:
http://www.itnetwork.cz/…er-kontroler
Bohužel to z toho vůbec nechápu, proto sem napsal sem jestli by mi to nemohl někdo blíže vysvětlit.
Co konkrétně? Jestli myslíš .htaccess, tak to nechápe skoro nikdo, je to spojení pěkný čuňárny, magie a hodně štěstí. Kdybys to i tak chtěl pochopit, tak třeba tady http://code.tutsplus.com/…ls--net-6049
Půjčíme si z toho ten htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^users/(\d+)*$ ./profile.php?id=$1
RewriteRule ^threads/(\d+)*$ ./thread.php?id=$1
RewriteRule ^search/(.*)$ ./search.php?query=$1
Poslední tři řádky říkají, že když je adresa users/.... tak se to pošle souboru profile.php a zbytek adresy jako get parametr id, stejně tak pro threads/... se volá thread.php a get parametr bude id a pro search search.php s get parametrem query. Takže v souboru profile.php bys takto
echo ( $_GET[ "id" ] );
vypsal z url adresy www.web.com/…**tutočást**
podobně v thread.php
echo ( $_GET[ "id" ] );
vypsal z url adresy www.web.com/…**tutočást**
nebo v search.php
echo ( $_GET[ "query" ] );
vypsal z url adresy www.web.com/…**tutočást**
Čáry máry
//Zapneš RewtiteEngine.
RewriteEngine on
//Nejsem si jistej jestly tam můsí být i tohle. . .
RewriteBase /
//Tohle by mělo být ono.
RewriteRule ^clanek-(.*) index.php?stranka=$stranka
$stranka je thoje $get
Zkus jestly to pujde ale moc od toho nečekej.
Apache jako webový server je velice prostý. Jeho účel je v první řadě restrikce nad requestem. Tyto restrikce defaultně nastavuješ v configu, ale pokud zapnes AllowOverride tak .htaccess soubory mohou po cestě menit nastavení, dokonce i php.
Jelikož nechceš, aby si kdokoli mohl zobrazovat jakýkoli script z tvého systému, což by mohl, protože apache jen podle url prohledává adresáře od složky, která je označena jako DocumentRoot, tak se stačí přesměrovat za všech okolnotí na jeden script, který se už postará o to, aby se akce z url delegovala ke správnému scriptu, který bude odpovídat akci (u presentation patternu mluvíme o Controlleru, Presenteru, ModelView, čemkoli...).
Toto přesměrování se provádí skrze directivu RewriteRule
zápis je : RewriteRule [pattern] [náhrada] [flagy]
Před RewriteRule může být libovolný počet RewriteCond, což jsou prostě
ify. Aby se rewrite provedl, musí být každý RewriteCond před RewriteRule
vyhodnocen jako pravda.
Tyto RewriteCond se často používají pro media jako css, js, images etc... Nejčastěji v prakci máš jednu složku, která je veřejná, takže buď dns odkazuje přímo do této složky, nebo máš ještě před tím nějaký jiný htaccess, který to sem vždy přesměruje. Zde můžeš mít zápis jako
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
Toto nejčastější s čím se setkáš, říká to, že pokud požadovaný soubor neexistuje od aktuální adresáře dále, nebo to není existující adresář, tak se vše přesměruje na index.php, což bude výchozí script.
Velice v kostce, hodně jsem vynechal, ale pro vysvětlení mi to přijde
dostačující 
Zobrazeno 11 zpráv z 11.
