Autor Zpráva
Tomasekkkk
Profil *
Zdravím Vás, měl bych dotaz ohledně konfigurace htacess, zkouším si vytvořit jeden inzertní server, inspiroval jsem se jinýma inzercema, udělal jsem si htaccess, asi jej mám složitě, protože musím pro každou kategorii (subdoménu) dělat zápisy dle jeho ID čísla v kategorii (viz. id_kategorie=7) tzn. je zde třeba 8 zápisů pro každou subdoménu, lze toto řešit jednoduše? Dále zde mám zápis podkategorie, chtěl bych udělat zápis tak, aby se otevřelo URL http://elektro-foto.domena.cz/nazev-podkategorie_IDcislo/ pokud dám do zápisu

RewriteCond %{HTTP_HOST} ^poddomena\.domena\.cz
RewriteRule ^podkategorie/(.*)_([0-9]+) %{DOCUMENT_ROOT}/www/index.php?pg=vypkat&id_kategorie=7&id_podkategorie=$2 [L,QSA]


tak mi to otevře sice správně, ale pokud dám doménu http://elektro-foto.domena.cz/cokoli-napisu/nazev-podkategorie_IDcislo/ otevře mi stejnou stránku, rád bych nějakým způsobem toto omezil, aby se do URL nedalo cokoli jiného napsat, ale muselo by být URL ve formátu "nějaky-text-rozděleny_IDčíslo" lze toto nějak tedy řešit?

Moc díky za Vaše tipy pro začátečníka :-)

RewriteCond %{HTTP_HOST} ^elektro-foto\.domena\.cz
RewriteRule ^sitemap\.xml$ %{DOCUMENT_ROOT}/www/sitemap-generator.php?idkategorie=7 [L,QSA]
RewriteCond %{HTTP_HOST} ^poddomena\.domena\.cz
RewriteRule ^robots\.txt$ %{DOCUMENT_ROOT}/www/robots.php?idkategorie=7 [L,QSA]
RewriteCond %{HTTP_HOST} ^poddomena\.domena\.cz
RewriteRule ^nabidka/$ %{DOCUMENT_ROOT}/www/index.php?pg=vypkat&id_kategorie=7&typ=nabidky [L,QSA]
RewriteCond %{HTTP_HOST} ^poddomena\.domena\.cz
RewriteRule ^poptavka/$ %{DOCUMENT_ROOT}/www/index.php?pg=vypkat&id_kategorie=7&typ=nabidky [L,QSA]
RewriteCond %{HTTP_HOST} ^poddomena\.domena\.cz
RewriteRule ^podkategorie/(.*)_([0-9]+) %{DOCUMENT_ROOT}/www/index.php?pg=vypkat&id_kategorie=7&id_podkategorie=$2 [L,QSA]
RewriteCond %{HTTP_HOST} ^poddomena\.domena\.cz
RewriteRule ^vlozit\.html$ %{DOCUMENT_ROOT}/www/index.php?pg=addinzerat&id_kategorie=7 [L,QSA]
RewriteCond %{HTTP_HOST} ^poddomena\.domena\.cz
RewriteRule ^vlozit-zdarma\.html$ %{DOCUMENT_ROOT}/www/index.php?pg=addinzerathost&id_kategorie=7 [L,QSA]
RewriteCond %{HTTP_HOST} ^poddomena\.domena\.cz
RewriteRule ^([0-9]+)/$ %{DOCUMENT_ROOT}/www/index.php?pg=vypkat&id_kategorie=7&page=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^poddomena\.domena\.cz
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/www/index.php?pg=vypkat&id_kategorie=7 [L,QSA]
Joker
Profil
Tomasekkkk:
Já osobně preferuji jednoduchý .htaccess, příklad:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/index.php?url=/$1 [L,QSA]
Neboli: Pokud to není existující soubor ani adresář, předhodí se adresa v parametru url nějakému PHP skriptu.

S tímhle .htaccess souborem se dá vystačit na drtivé většině webů.
Ta logika, co se má pro kterou adresu zobrazit, pak je uvnitř toho PHP souboru, kde se to dá napsat jednodušeji a přehledněji (IMHO).
Tomasekkkk
Profil *
No to jsem viděl taky, ale bylo pro mě lepší se jen v PHP odkazovat formou GET a bylo ;o) Ale asi to tak dopadne.
Davex
Profil
Když se tak na ty parametry dívám, tak je asi chyba v návrhu aplikace. Požadované URL nelze jednoduše převést na parametry, protože jsou očekávány jiné hodnoty než ve vstupním URL. Asi by bylo nejvhodnější, přepracovat parametrizaci a přesunout rozhodování do aplikace, jak radí Joker.
Tomasekkkk
Profil *
Jasně, já si právě myslel, že když budou podmínky typu IF nebo CASE, tak bude script zbytečně zpomalovat, ale jak říkáte, asi bude nejlepší to celé překopat a ověřovat to přímo ve scriptu, myslel jsem, že na to zafunguje i něco jiného. Díky

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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