Autor Zpráva
Volda
Profil
Zdravim uz dlouho premejslim nad tim jak jsou udelane url webu od spolecnosti interne info maji je velic pekne... (http://www.root.cz/zpravicky/logfs-novy-souborovy-system-pro-flash-pa meti/ ) zadne cisla atd... proste takovy dorticek pro oci atd...
experimentoval jsem s .htaccess, ale nejako se mi ti nevede
zde je kod .htaccess:
RewriteEngine on
RewriteRule ^(.*)/(.*)/(.*)/(.*) index.php?sec=$1&cat=$2&typ=$3&title=$4

pri cemz sec = sekce
cat = kategorie
typ = typ zdeleni (aktualita/clanek...)
title = nazev clanku

kdyz se zadaji vsechny parametry do adresy tak to funguje, ale kdyz jeden z nich vynecham, server hned hlasa ze adresa neexistuje...
Volda
Profil
prisel jsem na to, ze kdyz zadam adresu napr.: neco.cz/sekce/categorie bez lomitka na konci tak to nefunguje a naopak... tak tedy staci jen dostadit lomitko a zbytek udela php...
doufam, ze jsem na spravne ceste....
Schunka
Profil *
jestli na to nakonec přijdeš tak sem s tím taky o tom přemýšlím a zkouším. jestli na to příjdu učitě to sem napíšu
Schunka
Profil *
nejspíš mě to napadlo ale ještě jsem to nevyzkoušel, hned na to vlítnu,
idea: jednotlivé GET proměnné zrušíme uděláme jen jednu třeba $pom ta bude obsahovat string všech ostatních proměnných oddělených lomítkem, (možná už tušíte kam mířím) tzn. když pak někdo zadá tak máš jen jeden parametr ke změně a přepisovací pravidlo bude pouze rušit tu ošklivou část s "index.php?" zbytek se vypíše jako "/hodnota1/hodnota2/.../hodnotaN/" za zbytek url, takže to pak vypadá opravdu hezky. Tak teď už rychle abych to ozkoušel.
Volda
Profil
Jo to je dobrej napad... v priklade co jsem uvadel ja je trochu problem protoze je to absolutni pocet lomitek...
DJ Miky
Profil
Přes mod_rewrite mě napadá jen takováto šílenost:

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?sec=$1&cat=$2&typ=$3&title=$4
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?sec=$1&cat=$2&typ=$3
RewriteRule ^([^/]+)/([^/]+)$ index.php?sec=$1&cat=$2
RewriteRule ^([^/]+)$ index.php?sec=$1
Volda
Profil
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?sec=$1&cat=$2&typ=$3&title=$4
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?sec=$1&cat=$2&typ=$3
RewriteRule ^([^/]+)/([^/]+)$ index.php?sec=$1&cat=$2
RewriteRule ^([^/]+)$ index.php?sec=$1


tak toto neni moc uspesna kombinace.... (zkousel jsem to...)
Schunka
Profil *
Tošku se to dá obejít, zase jsem přemýšlel, rozvíjím svoji původní ideu, chce to nejspíš předělat i PHP které zpracuje náš string $pom, rozseká ho na části oddělené lomítkem že?
př: neco.cz/sekce/categorie/clanek je podstrčená url místo neco.cz/?pom=sekce/categorie/clanek přičemž, když nezadáme jednu z částí, PHP musí chybu ošetřit jako neexistujíci sekci, categorii, atd.
Ještě k problému když někdo zadá chybnour url tak mu to stejně článek nedá tzn. po rozsekání do pole můžeš na začátku scriptu všechno uložit do proměnných
př:
$pole=explode('/',$pom);
$1=$pole[0]; $2=$pole[1]; $3=$pole[2]; $4=$pole[3];

a dál s nimi pracuješ jako původně pokud nějaká chybí je to chyba způsobená buď špatným odkazem, nebo uživatelem co špatně zadal url, s odkazem můžeš něco udělat sám, ale s uživateli můžeš tak akorát napsat, aby si překontroloval co pravdu chce,
tiso
Profil
Volda - miesto mod_rewrite môžeš použiť ošetrenie cez chybovú stránku 404
DrEggman
Profil *
Ja som s tim vedel robit dpc... ale viem ze este ma bit definovana cesta k suboru... len teraz ma nenapada jak to bolo :(
DrEggman
Profil *
No toto je ono :)
ak to mas v hlavnom priecinku teda ako v www.nieco.sk tak tam daj toto:
RewriteBase /

Ak to mas napr. vo www.nieco.sk/hhe
tak tam daj:

RewriteBase /hhe



a nezabudni to dat hned za RewriteEngine on
chapes?
Volda
Profil
př: neco.cz/sekce/categorie/clanek je podstrčená url místo neco.cz/?pom=sekce/categorie/clanek přičemž, když nezadáme jednu z částí, PHP musí chybu ošetřit jako neexistujíci sekci, categorii, atd.
To je ono!!! Mel jsi pravdu ;)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0