abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 14
    dnes 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 1
    včera 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    včera 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    22.12. 23:44 | Nová verze

    Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.

    Ladislav Hagara | Komentářů: 0
    21.12. 05:00 | Nová verze

    Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 2
    21.12. 01:55 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    19.12. 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 14
    19.12. 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 1
    Kdo vám letos nadělí dárek?
     (29%)
     (3%)
     (10%)
     (3%)
     (1%)
     (3%)
     (15%)
     (21%)
     (15%)
    Celkem 78 hlasů
     Komentářů: 18, poslední dnes 15:30
    Rozcestník

    Dotaz: apache2 mod_rewrite

    26.7.2012 16:22 kei.101
    apache2 mod_rewrite
    Přečteno: 360×
    Dobrý den.

    Už půl dne tu koumám jak správně použít mod_rewrite pro daný problém a nedaří se mi, tak bych rád poprosil o radu někoho zkušenějšího. Řeším toto:

    Potřeboval bych do .htaccess vložit mod_rewrite pravidla tak, aby pro cestu ^([^/]+)(.*)$ platilo: 1] Pokud v daném adresáři existuje podadresář nebo soubor s názvem $1, tak se nestane nic.. soubor se běžně obslouží 2] ..jinak pokud v daném adresáři existuje soubor $1.wsgi, přepíše se cesta na $1.wsgi$2 3] ..jinak se cesta přepíše na index.wsgi$1$2

    Pro názorný příklad, mám li adresářovou strukturu: / /index.wsgi /test.wsgi /pokus/ /pokus/index.wsgi

    Pak se bude přepisovat takto: '/' -> index.wsgi /a/b/c -> index.wsgi/a/b/c /test -> test.wsgi /test/a/b/c -> test.wsgi/a/b/c /pokus/a/b/c -> /pokus/index.wsgi/a/b/c

    Ten poslední krok je možné obsloužit rekurzivně, tj. v adresáři /pokus bude opět .htaccess

    Díky za pomoc

    JN

    Odpovědi

    27.7.2012 09:12 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: apache2 mod_rewrite
    Takhle nějak?
    RewriteCond $1 -d [OR]
    RewriteCond $1 -f
    RewriteRule ^([^/]+)(.*)$ - [L]
    
    RewriteCond $1.wsgi -f
    RewriteRule ^([^/]+)(.*)$ /$1.wsgi$2 [L]
    
    RewriteRule ^([^/]+)(.*)$ /index.wsgi$1$2 [L] 
    
    27.7.2012 13:14 kei.101
    Rozbalit Rozbalit vše Re: apache2 mod_rewrite
    Už jsem to vyřešil, ale koukám, že dost podobně až na několik věcí:
    • Nevěděl jsem o flagu [OR], takže to první pravidlo mám nadvakrát :)
    • Ten druhý a třetí odstavec bohužel nefunguje bez RewriteBase a cesty do adresáře, protože to používám v .htaccess v rámci UserDir...
    Protože nelze použít proměnné úplně kdekoli v apache configu, napsal jsem si skript na generování požadovaného textu pro .htaccess libovolného adresáře:
    #!/bin/sh
    
    : ${USER:=$(whoami)}
    : ${DOC_ROOT:=/home/$USER/http}
    : ${DIR:=$(pwd)}
     
    rel_dir=${DIR#$DOC_ROOT}
    if [ "$rel_dir" == "$DIR" ]; then
        echo "Directory not in user document root!" >&2
        echo "DOC_ROOT: $DOC_ROOT" >&2
        echo "DIR: $DIR" >&2
        exit 1
    fi
     
    echo 'RewriteEngine On'
    echo 'RewriteCond %{REQUEST_FILENAME} -f' [OR]
    echo 'RewriteCond %{REQUEST_FILENAME} -d'
    echo 'RewriteRule .* - [L]'
    echo "RewriteCond $DIR/\$1 -f"
    echo 'RewriteRule ^([^.]+\.wsgi).* - [L]'
    echo
    echo "RewriteBase /~$USER$rel_path/"
    echo "RewriteCond $DIR/\$1.wsgi -f"
    echo 'RewriteRule ^([^/]*)(.*)$ $1.wsgi$2 [L]'
    echo 'RewriteRule ^(.*)$ index.wsgi/$1 [L]'
    
    # EOF
    
    27.7.2012 15:22 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: apache2 mod_rewrite
    V tom druhém a třetím případě by určitě bylo možné použít relativní cesty, já jsem použil vzor, který jste měl v dotazu.
    27.7.2012 18:52 kei.101
    Rozbalit Rozbalit vše Re: apache2 mod_rewrite
    No mě právě ta relativní cesta nějak nefungovala :( Rád bych to udělal bez těch absolutních cest, kdybych věděl jak.. Vždycky se mi to přepsalo na cestu ve filesystému a pak mi to napsalo, že na serveru taková cesta neexistuje.. tak teď to přepisuju na cestu http requestu, tedy ~username/... místo /home/username/http/... Každopádně díky za odpověď a všechna čest to takhle z fleku dát dohromady :) Minimálně ten OR flag mi přišel vhod :)
    27.7.2012 21:15 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: apache2 mod_rewrite
    mod_rewrite pracuje s cestou požadavku, tj. přepisovat to na /~username/ a ne /home/username/http/ je správně. Problém ale může být v tom, že ty cesty nevedou na dokumenty v DocumentRoot, na to je v Apache nějaké omezení.

    Z fleku to rozhodně nebylo, inspiroval jsem se v dokumentaci mod_rewrite.
    27.7.2012 18:55 kei.101
    Rozbalit Rozbalit vše Re: apache2 mod_rewrite
    Navíc jsem ještě během pokusů zjistil, že mi přijde vhod, že když někde v requestu (nejen na konci) je (.*)\.wsgi, tak ten pořadavek nepřepisovat.. a tak v tom pravidlu taky potřebuju znát nějakou cestu ve filesystému bohužel.. ale ten skript na generování teď funguje přesně, jak potřebuji a vygeneruje mi .htaccess pro libovolný adresář, aniž bych musel ručně dopisovat nějaké cesty, takže mi to stačí :)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.