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 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .\png$ /cesta/no_foto.png [L] 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 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 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> 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: 9 let
|
0