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 13:22 | Komunita

    Vývoj linuxové distribuce Clear Linux (Wikipedie) vyvíjené společností Intel a optimalizováné pro jejich procesory byl oficiálně ukončen.

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

    Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).

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

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 0
    17.7. 18:44 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).

    Ladislav Hagara | Komentářů: 1
    17.7. 16:11 | Nová verze

    Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 2
    17.7. 15:55 | Komunita

    Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.

    Ladislav Hagara | Komentářů: 5
    16.7. 21:22 | IT novinky

    Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.

    Ladislav Hagara | Komentářů: 19
    16.7. 16:22 | IT novinky

    Vláda dne 16. července 2025 schválila návrh nového jednotného vizuálního stylu státní správy. Vytvořilo jej na základě veřejné soutěže studio Najbrt. Náklady na přípravu návrhu a metodiky činily tři miliony korun. Modernizovaný dvouocasý lev vychází z malého státního znaku. Vizuální styl doprovází originální písmo Czechia Sans.

    Ladislav Hagara | Komentářů: 26
    16.7. 15:33 | Upozornění

    Vyhledávač DuckDuckGo je podle webu DownDetector od 2:15 SELČ nedostupný. Opět fungovat začal na několik minut zhruba v 15:15. Další služby nesouvisející přímo s vyhledáváním, jako mapyAI asistent jsou dostupné. Pro některé dotazy během výpadku stále funguje zobrazování například textu z Wikipedie.

    bindiff | Komentářů: 8
    16.7. 13:33 | Bezpečnostní upozornění

    Více než 600 aplikací postavených na PHP frameworku Laravel je zranitelných vůči vzdálenému spuštění libovolného kódu. Útočníci mohou zneužít veřejně uniklé konfigurační klíče APP_KEY (např. z GitHubu). Z více než 260 000 APP_KEY získaných z GitHubu bylo ověřeno, že přes 600 aplikací je zranitelných. Zhruba 63 % úniků pochází z .env souborů, které často obsahují i další citlivé údaje (např. přístupové údaje k databázím nebo cloudovým službám).

    Ladislav Hagara | Komentářů: 6
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (0%)
     (25%)
     (25%)
     (0%)
     (0%)
     (0%)
     (0%)
     (50%)
    Celkem 4 hlasů
     Komentářů: 1, poslední dnes 13:41
    Rozcestník

    Dotaz: apache2 mod_rewrite

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