Hledáme Nette programátory a kolegy - super tým i plat
Zobrazují se odpovědi 1 až 5 z 5

RewriteRule pro přátelské URL k článkům

  1. Zdravím,
    pokouším se nastavit friendly url k článkům. Na hostingu mám celkem 3 soubory .htaccess:
    1. v kořenovém adresáři /
    2. v adresáři /www
    3. v adresáři /www/beta, kde jsou stránky ve zkušební verzi

    Nastavit RewriteRule zkouším právě v tom třetím .htacccess - v adresáři /www/beta podmínkou
    RewriteRule ^clanek/([0-9]*)-([.]*)/$ index.php?clanek=$1

    pro url např.:
    www.mujweb.cz/beta/clanek/1-ahoj
    www.mujweb.cz/beta/clanek/12-novy-clanek
    www.mujweb.cz/beta/clanek/3432-dalsi-clanek ap.

    bohužel stále dostávám error 404 a nefunguje mi ani jednoduchý příklad:
    RewriteRule ^test/$ registrace.php

    /www/beta .htaccess:
    Kód:
    <Files ~ "^.(htaccess|htpasswd)$">
    deny from all
    </Files>
    AuthUserFile "smazano"
    AuthGroupFile /dev/null
    AuthName "Please enter your ID and password"
    AuthType Basic
    require valid-user 
    order deny,allow
    
    # clanky - presmerovani na konkretni clanek
    RewriteRule ^test/$ registrace.php
    RewriteRule ^clanek/([0-9]*)s-[.]*/$ index.php?clanek=$1
    kořenový .htaccess a se od /www liší jen absencí posledními dvěma řádky
    Kód:
    # htaccess pravidla pro subdomeny a samostatne weby aliasu
    # pro vytvoreni subdomeny vytvorte adresar www/subdom/(nazev subdomeny)
    # pro vytvoreni webu pro alias vytvorte adresar www/domains/(cely domenovy nazev)
    # dalsi info a priklady: http://kb.wedos.com/r/32/webhosting-htaccess.html
    
    RewriteEngine On
    
    # cele domeny (aliasy)
    RewriteCond %{REQUEST_URI} !^domains/
    RewriteCond %{REQUEST_URI} !^/domains/
    RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
    RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
    RewriteRule (.*) domains/%2/$1 [DPI]
    
    # subdomeny (s nebo bez www na zacatku)
    RewriteCond %{REQUEST_URI} !^subdom/
    RewriteCond %{REQUEST_URI} !^/subdom/
    RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
    RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
    RewriteRule (.*) subdom/%2/$1 [DPI]
    
    # aliasy - spravne presmerovani pri chybejicim /
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]
    
    # subdomeny - spravne presmerovani pri chybejicim /
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
    
    RewriteCond %{HTTP_HOST} ^mujweb.cz
    RewriteRule (.*) http://www.mujweb.cz/$1 [R=301,QSA,L]

  2. Happy Robot :]

    Co se právě děje na Webtrhu?

  3. RewriteEngine On
    RewriteBase /beta


    Přidej tam ten RewriteBase :)

  4. Myslíš do souboru /www/.htaccess? Ke stránce přistupuji klasicky přes www.mujweb.cz/beta čili se používá tamní index.php i .htaccess kde potřebuju nastavit právě to přesměrování...

  5. Ano myslím.

  6. Zprovoznil jsem to, ale přidáním do souboru /www/beta/.htaccess.
    Ovšem teď veškerý relativně odkazovaný obsah (styly, obrázky ale i celé stránky ap.), který se hledál na adrese původně www.mujweb.cz/beta/index.php?clanke=id musím předělat tak, aby byl k nalezení z www.mujweb.cz/beta/clanek/id, chápu-li to dobře..? Snad jsem to napsal srozumitelně.
    Trochu mi ale vrtá, jak to udělat v případě, když index.php hledá obsah ze své výchozí pozice, ale index.php?clanek=id nově předělaný na url clanek/id hledá opet ze své pozice, což je o složku mimo :(

    ---------- Příspěvek doplněn 02.01.2012 v 23:13 ----------

    Prozatím jsem to vyřešil pomocí elementu <BASE> v hlavičce. viz http://www.w3.org/TR/html4/struct/links.html#h-12.4
    Moc jsem to nestudoval, ale zdá se, že vše funguje jak má :)
    Naposledy upravil MD1 : 12.01.2012 v 15:48

Podobná témata

  1. Tvar URL článků
    By weckho in forum Wordpress
    Odpovědí: 5
    Poslední příspěvek: 29.09.2009, 18:26
Hostujeme u Server powered by TELE3