Autor Zpráva
dako
Profil
Ahojte, potreboval by som poradit s prepisom URL na stránke. Ideálne riešenie by z môjho pohľadu bolo, pokiaľ by som si mohol sám vedieť prepísať URL pomocou PHP v zdrojovom kode na mojej stránke- avšak neviem ako na to.

Dalšia vec, čo sa mi podarilo, je že mi berie adresu teda www.example.com/index.php?page=kontakt ukáže aj keď napíšem www.example.com/kontakt pomocou úpravy v .htaccess


RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]

Avšak problém nastáva keď sa ďalej preklikávam - kedže URL mám pevne dané v odkazoch na stránke, čiže keď znova aj kliknem v menu na kontakt tak už sa mi zobrazí index.php?page=kontakt .Teda dá sa nejako dosiahnuť aby to aj prepísalo (presmerovalo) na /kontakt alebo aký je Váš názor, prípadne ako sa to zvykne robiť?

Alebo ako vytvoriť podminku v PHP, že
ak page = kontakt tak URL = "kontakt" ,
ak page = priroda tak URL = "galeria/priroda"

teda ručne by som si vedel napísať URL buď cez PHP alebo cez databazu editovať (to by nemal byť problem dorobiť)


A ďalšia otázka alebo skor uistenie, že plánujem web, kde by som chcel pridávať novinky, články,...(asi cez TinyMCE) že asi by nemal byť problem vždy pri pridávaaní článku by som si napísal jeho URL, prípadne by to automaticky hodilo názov do URL. Avšak to neviem ako dosiahnuť ešte, prípadne ako to urobiť spojiť databázu s .htaccess tak za prípadné odkazy alebo návrhy buďem vďačný :)

Ďakujem ešte raz za každý návrh a Vaše nápady a usmernenia :)
Kajman
Profil
dako:
čiže keď znova aj kliknem v menu na kontakt tak už sa mi zobrazí index.php?page=kontakt ... prípadne ako sa to zvykne robiť?

Jednoduše vygenerujete html kód, kde bude chtěný formát odkazů.

prípadne ako to urobiť spojiť databázu s .htaccess

.htaccess můžete nechat současný. V souboru index.php se podíváte na proměnnou $_GET['page']. Tu si můžete např. vyhledat v tabulce routování, kterou si připravíte (galeria/priroda => priroda) případně kouknete i do tabulky článků, zda tam je taková url.

Někdo dává id článku do url, aby se mu jednodušeji daný článek hledal.

Také se můžete inspirovat např. v tomto řešení routování.
dako
Profil
Kajman:

Ďakujem, a čo sa týka odpovede:

Jednoduše vygenerujete html kód, kde bude chtěný formát odkazů.


Tak to hej, ale keď je na stránke napríklad 50 odkazov , i tak to budem musieť všetko prepisovať? Pre to som chcel vedieť, či nie je jednoduchšia cesta.

A ďalej čo sa týka routovania, tak ešte som sa s tým nestretol, tak neviem presne čo to je a nejak zatial moc tomu nechápem.

A ďalšia vec, najjednoduchšie pre mna by bolo, pokiaľ by som si mohol zadefinovať takto URL:

if (isset($_GET['page'])) {
        switch($_GET['page']) {
      
    
      case "priroda": 
// priklad zmeny url - pripadne podobne cez nejaku premennu     $url = "galeria/priroda";
    $title = " Galéria-Príroda";
    $description = "Fotografie krás prírody a zvierat, umelecké fotografie prírody";
    $keywords = "fotografie, príroda, zvieratá, foto, príroda, umelecké fotky, dlhý čas, vodopády, lev, jeseň, jar, zima, leto ";
    break;
a tak dalej aj pre ostatne, nepojde takymto sposobom v switche menit URL tak ako mením aj meta tagy ??? Prípadne nakolko náročné je to routovanie?
Michal Maršálek
Profil
Ahoj,
můžeš veškerá url přesměrovávat (podstrčit) na php soubor který je zpracuje a následně přesměruje (podstrčí), pokud je ti php bližší.
Například www.mojestranka.cz/super-clanek se přesměruje (podstrčí) na www.mojestranka.cz/zpracujURL.php?url=www.mojestranka.cz/super-clanek v tom souboru to zpracuješ jak budeš potřebovat a přesměruješ (podstrčíš) na www.mojestranka.cz/clanek.php?id=352 - vše jsou samozřejmě jen příklady.
Staré odkazy můžeš prohnat regexpy a nahradit hromadně, zpřístupnit i starou i novou adresu není vhodné (duplicitní obsah) - leda si pak ještě pohrát s kanonickými množinami.
dako
Profil
ok, vdaka, ale potrebujem konkrétný príklad kodu, ktorý mi to urobí, lebo nic nemozem ani vygooglit... :/
Michal Maršálek
Profil
dako:
.htaccess:
RewriteEngine on
RewriteRule (.*) /zpracujURL.php?url=$1 [QSA,L]

zpracujURL.php:
$puvodniURL=$_GET["url"];
$noveURL="";//tady dáš nějaký algoritmus, podle kterého budeš URL převádět
require $noveURL;

Buď takhle a nebo nechápu, čeho chceš dosáhnout.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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