Portál AbcLinuxu, 1. července 2025 17:05

Použití .htaccess souborů bez AllowOverride direktivy

6.11.2005 22:43 | Přečteno: 5465× | Free Software | poslední úprava: 29.5.2006 20:58

V poslední době jsem si tak trochu hrál se serverem Apache a narazil jsem na velmi nepříjemné omezení. Pokud bych chtěl povolit uživatelům na serveru používání .htaccess souborů, nemůžu zcela přesně nastavit, jaké konkrétní direktivy v .htaccess mají být povoleny. Např. kdybych chtěl uživatelům povolit jen používání mod_rewrite, musel bych jim umožnit AllowOverride All. Apache se mi v tomto jeví jako velmi neflexibilní a nechápu, že za dobu jeho existence toto ještě nikdo nenapravil (nebo o tom alespoň nevím).

Jelikož moc neumím programovat v C/C++ (abych mohl napsat patch na httpd, který by toto omezení řešil), napsal jsem si alespoň jednoduchý bashový skript, který toto omezení obchází.

Pokud můžete, koukněte se na onen skript, zda nepřináší nějaké problémy. Já sám jsem ho zkoušel a funguje mi bez problémů, ale mohl jsem něco přehlédnout. Ideální je spouštět ho např. každých 5 minut cronem.

Funkce skriptu je jednoduchá - vyhledá všechny .htaccess soubory v cestě (cesta se nastavuje jako proměnná basedir a případně i docsdir), progrepuje jejich obsah (tak, aby byly zachovány jen direktivy povolené v poli htallowed) a vytvoří z nich konfigurační soubory v adresáři specifikovaném v proměnné confdir (např. /etc/apache2/htaccess.d). Potom ověří, zda v těchto konfiguračních souborech nejsou nějaké chyby (pokud ano, odstraní příslušný chybný konfigurační soubor odpovídající danému .htaccess souboru) a následně reloaduje apache (aby bylo provedeno znovunačtení konfiguračních souborů).

Je samozřejmě nutné mít ve vašem konfiguračním souboru apache (obvykle httpd.conf) řádek:

Include /etc/apache2/htaccess.d/*.conf

Doufám, že alespoň někomu bude tento skript užitečný. A předem se omlouvám za případný zbytečně komplikovaný kód, nejsem žádný expert na bash a tudíž je možné, že některé věci by šly řešit ještě jednodušeji (jakékoliv návrhy na změny uvítám).

Snad se jednou dožiju doby, kdy na každém hostingu (pokud možno i free hostingu) budou povoleny .htaccess soubory (protože mod_rewrite je nesmírně užitečná věc ;-))

       

Hodnocení: 100 %

        špatnédobré        

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

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

7.11.2005 12:42 miso
Rozbalit Rozbalit vše Re: Použití .htaccess souborů bez AllowOverride direktivy
Odpovědět | Sbalit | Link | Blokovat | Admin

# Vytvoreni adresare pro konfiguracni soubory Apache (pokud neexistuje)
if [ ! -d "$confdir" ]; then
mkdir -p $confdir
fi
man mkdir:
-p, --parents
              no error if existing, make parent directories as needed

Pokial pouzivas parameter -p je kontrola zbytocna, alebo to mu nerozumiem ja. Pisem to len preto ze si k tomu vyzyval ;-)

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.