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 17:00 | Zajímavý software

    Společnost Cloudflare představila Cloudflare OS (GitHub), tj. open source platformu navrženou pro integraci umělé inteligence (agentů) přímo do pracovních procesů organizací.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Nová verze

    Byla vydána nová verze 5.13 svobodného multiplatformního softwaru pro konverzi a zpracování digitálních fotografií primárně ve formátů RAW RawTherapee (Wikipedie). Vedle zdrojových kódů je k dispozici také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Zajímavý článek

    Jean-Baptiste Kempf na svém blogu představil novou verzi 9.0 "Lei" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie).

    Ladislav Hagara | Komentářů: 1
    včera 20:11 | Komunita

    Richard Hughes oznámil, že službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzoruje také společnost NVIDIA.

    Ladislav Hagara | Komentářů: 1
    včera 12:22 | Zajímavý software

    Edvard Rejthar na blogu zaměstnanců CZ.NIC představil svou aplikaci SlideRshow (GitHub). Funguje jako prohlížeč fotek, ale i jako jejich organizér a prezentátor. Neinstaluje se, běží přímo v prohlížeči. Bez serveru. Offline.

    Ladislav Hagara | Komentářů: 3
    včera 11:44 | Nová verze

    Kermit, tj. protokol pro přenos souborů, vznikl před 45 lety. Při této příležitosti byla po 15 letech od vydání poslední stabilní verze 9.0.302 vydána nová stabilní verze 11 implementace C-Kermit. S podporou IPv6.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | Zajímavý článek

    První verze konverzního nástroje Pandoc byla vydána před 20 lety. Jeho autor John MacFarlane při tomto výročí rekapituluje jednotlivé etapy vývoje a přidávání nových funkcí – rozšíření nejen Markdownu a podporu mnoha dalších formátů.

    |🇵🇸 | Komentářů: 0
    včera 00:55 | Pozvánky

    Srpen přinesl nejen další spalující vedro, ale také Virtuální Bastlírnu s neméně žhavými novinkami. Využijte tedy předpovědi na deštivý čtvrteční večer a od 20:00 se připojte online k tomuto neformálnímu setkání kutilů, techniků a vědců, kde se strahovskými bastlíři proberete nejzajímavější věci, na které jste narazili za poslední měsíc. Pokud jde o novinky, řeč zcela jistě přijde na systém INDX pro tiskárny Průša, který na konci

    … více »
    bkralik | Komentářů: 0
    3.8. 17:22 | Zajímavý článek

    Firma T-Mobile blokovala „dezinformační web“ AC24 bez toho, aniž by k tomu měla závazný pokyn orgánů veřejné moci. Píše to ve svém rozsudku Městský soud v Praze, který po čtyřech letech uzavřel kauzu blokace zmíněného webu. Operátor musí uhradit škodu ve výši 35 tisíc korun. Advokát společnosti T-Mobile se snažil i u odvolacího senátu argumentovat tím, že firma jednala v dobré víře, když na stránky omezila přístup poté, co ji k tomu vyzvalo

    … více »
    Ladislav Hagara | Komentářů: 50
    3.8. 16:33 | IT novinky

    Padla obžaloba v bitcoinové kauze. Státní zástupkyně chce pro Blažka 6,5 roku vězení, pro Titze 8 let.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (6%)
     (6%)
     (2%)
     (15%)
     (23%)
    Celkem 2326 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: apache2 mod_rewrite

    26.7.2012 16:22 kei.101
    apache2 mod_rewrite
    Přečteno: 448×
    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.