Autor | Zpráva | ||
---|---|---|---|
j_hajsl Profil |
#1 · Zasláno: 8. 4. 2015, 08:22:30
Zdravím,
zkouším nastavit apache, tak aby podstrčil místo neexistujícího obrázku svůj obrázek "no_foto.png". V .htaccess jsem zkoušel toto 1RewriteEngine On RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .\png$ /cesta/no_foto.png [L] 1RewriteEngine On RewriteEngine On
RewriteCond %{REQUEST_URI] .\(png)$ [NC]
RewriteCond %{REQUST_FILENAME} !-f
RewriteCond %{REQUST_FILENAME} !-d
RewriteRule .*$ /cesta/no_foto.png [L] obojí funguje tak, že se nahradí obrázek jen v případě, že neexistuje obrázek, ale ani adresář v němž má být, např. volám /adr1/foto1.png 1. pokud neexistuje adr1, tak je to v pořádku a vrátí se /cesta/no_foto.png 2. pokud adresář adr1 existuje, ale foto1.png nikoli vrací mi server chybu 403 a v logu pak vidím, že se apache pokuší načíst .htaccess právě z adresáře adr1, kde ovšem není. Existuje cesta (kromě toho, že do všech těch podadresářů - je jich cca 5000 - nalinkuji .htaccess z rootu) jak donutit apache číst .htaccess z rootu bez ohledu na to, zda adresář adr1 existuje? Hledal jsem samozřejmě v google i tady, ale nejblíže se mi jeví téma Náhrada neexistujícího obrázku, kterému ale tehdy odpovídací nerozuměli a dotazující ho neupřesnil, protože neměl možnost se podívat do logu apache, ale myslím, že je to ono. |
||
Keeehi Profil |
#2 · Zasláno: 8. 4. 2015, 09:34:55
j_hajsl:
„v logu pak vidím, že se apache pokuší načíst .htaccess právě z adresáře adr1“ Mohl by jsi sem nakopírovat ten záznam, podle kterého tak soudíš? Schválně jsem to vyzkoušel a funguje mi to takto: RewriteEngine On RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.png$ no_foto.png [L] |
||
Kajman Profil |
#3 · Zasláno: 8. 4. 2015, 09:36:20
j_hajsl:
Je adr1 nějak omezen právy, že se tam apache nedostane? Změní se chování při přidání Options +FollowSymlinks Options +FollowSymlinks Změní se chování při přidání prázdného .htaccess do adresáře s obrázky? Pokud jsou adresáře s obrázky pod nějakým společným adresářem, tak by mělo jít pro tento adresář zakázat nahlížení do souborů .htaccess, ale jde to jen přímo v konfiguraci apache díky <Directory /images> <Directory /images>
AllowOverride None
</Directory> |
||
j_hajsl Profil |
#4 · Zasláno: 8. 4. 2015, 16:52:47
Keeehi, Kajman
Děkuji za odpovědi, chyba byla mezi židlí a klávesnici, nad dotčenými složkami nebyla dostatečná oprávnění, po opravě se to chová, tak jak jsem očekával. Nastavil jsem pravidla i přímo v nastavení virtual hosta a funguje to. Zajímavosti je, že pokud sadu příkazu Rewrite... neuzavřu do <Directory "virtualhost_root">, a dám to volně do <VirtualHost ...>, tak to náhodně nahrazuje i existující soubory a žádnou chybu v konfiguraci nenahlásí, pokud je to uvnitř <Directory> tak je to v pořádku. To, že to musí být v Directory nebo htaccess se píše v dokumentaci, takže asi nemá význam řešit. |
||
Časová prodleva: 10 let
|
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.
Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:
Běda vám, jestli to bude blábol.
0