Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP].htaccess przestało działać dla istniejących plików
Forum PHP.pl > Forum > Przedszkole
disip
Witam,

chodzi o nadawanie znaku wodnego wszystkim plikom z folderu img.
Bez zbędnego pisania od razu podam swój kod .htaccess (oczywiście z folderu img):
Kod
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.(gif|jpeg|jpg|png)$ t.php [NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.jpg$ gangsty.png [L,NC]


i tak, o ile linijki dotyczące nieistniejącego pliku (!-f) działają, tak dla istniejącego - nic się nie dzieje.
Przeszukałem wszelkie możliwe strony z poradnikami dot. znaku wodnego, wszędzie były podobne kody,
z tym u mnie żaden nie działa.

A najśmieszniejsze jest to, że wcześniej wszystko działało! Nie wiem, czy jakaś zmiana w konfiguracji,
nowe standardy, czy cokolwiek?
Proszę o pomoc, dodam, że mam hosting w Hitme.net.pl (swoją drogą w najgorszym miejscu hostingowym - na umożliwienie dostępu do panelu klienta oraz ustawienie wildcardu czekam od ponad miesiąca, ostatnia wiadomość jaką uzyskałem, to "(...)jutro rano(...)", 2 tygodnie temu).

Pozdrawiam
AdIoS_Neo
Witam,
Kod
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(gif|jpeg|jpg|png)$ a.php [NC,L] # jesli nie ma pliku
RewriteRule \.(gif|jpeg|jpg|png)$ t.php [NC,L] # jesli jest plik
disip
Dziękuję za chęć pomocy,
jednak nadal nic się nie zmienia.

Przykładowy działający link:
http://gangsty.pl/img/7466bbcb298924f3c218a9ec2247f8ca.jpg

jest zwykły obrazek, mimo ustawienia innego odwołania w htaccess.
Tego samego dla nieistniejących plików - wystarczy zmienić byle jakie litery by odwołać się do nieistniejącego pliku, np.:
http://gangsty.pl/img/aaaa.jpg

Jak widać przy nieistniejących - reguła htaccess działa. A chodzi o istniejące.
AdIoS_Neo
U mnie wygląda to tak:



czy nie o taki efekt chodziło ? (ps. nie używasz przypadkiem chrome'a ? wink.gif )
rocktech.pl
Witam.

http://gangsty.pl/img/t.php zachowuje się brzydko smile.gif

[APACHE] pobierz, plaintext
  1. RewriteEngine On
  2.  
  3. RewriteCond %{REQUEST_FILENAME} -f
  4. RewriteRule \.(gif|jpeg|jpg|png)$ t.php [L,NC] #<---
  5.  
  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteRule \.jpg$ gangsty.png [L,NC]
[APACHE] pobierz, plaintext


Jak nie zadziała to dodaj logowanie i przeanalizuj.

[APACHE] pobierz, plaintext
  1. RewriteLog "/usr/local/var/apache/logs/rewrite.log"
  2. RewriteLogLevel 3
[APACHE] pobierz, plaintext


A i daj jeszcze :

[APACHE] pobierz, plaintext
  1. Options -Indexes
[APACHE] pobierz, plaintext




disip
Cytat(AdIoS_Neo @ 25.06.2012, 13:45:51 ) *
U mnie wygląda to tak:



czy nie o taki efekt chodziło ? (ps. nie używasz przypadkiem chrome'a ? wink.gif )


Właśnie nie o taki efekt chodziło.
U mnie wygląda to tak samo. Tak, mam Chroma.

Chodzi o to, że gdy plik nie istnieje - wyświetla się obrazek gangsty.pl
Gdy plik istnieje - powinien zostać przepuszczony przez skrypt t.php, który dodaje znak wodny.
Jak widać tak się nie dzieje.

rocktech.pl - zachowuje się brzydko gdy odpala się go na sucho - później to zmienię.
Nie mniej jednak sam skrypt z plikiem robi to co powinien.

Później przeanalizuję kody, które mi podpowiedziałeś - teraz muszę spadać.
Dziękuję za pomoc, pod wieczór dam znać co i jak smile.gif
AdIoS_Neo
Przeciez jesli plik nie istnieje to wyswietla sie obrazek gangsty, a gdy istnieje to zostaje wyswietlony i ma jakis znak wodny w prawym dolnym rogu, chyba ze nie o ten znak wodny chodzi ale wtedy problem moze lezec po stronie skryptu, a nie modrewrite. Przekazujesz jakos skryptowi adres do obrazka ktory chcesz wyswietlic, a ktory on ma przetworzyc ? Wstaw sobie jakies echo do tego pliku t.php i wejdz w ktorys z obrazkow, jesli pojawi sie napis to bedzie znaczylo ze modrewrite przepisuje dobrze. Przyklad ktory ja Ci podalem dziala bo go testowalem, a RewriteCond dziala jak if wiec nie trzeba testowac 2 razy tego samego ... jesli sprawdzasz czy plik nie istnieje:
Kod
RewriteCond %{REQUEST_FILENAME} !-f
a za tym masz instrukcje z flaga L (last) to po co dalej sprawdzasz czy plik istnieje. To jak by napisac funkcje
Kod
function przyklad($i){
if($i==1) return true;
if($i!=1) return false;
}
przeciez wiadomo ze jesli kod za 1 ifem sie wykona to $i jest rozne od 1.
disip
Nie chodzi o ten znak. Ten już był na tym obrazku.

Nie jestem głupi, sprawdzałem czy skrypt działa.
Równie dobrze mogę dać echo, mogę wysłać inny obrazek ze skryptu,
w htaccess mogę nawet zamiast odwołania do skryptu dać odwołanie do innego obrazka.
Mimo wszystko to nadal nie działa jeśli plik faktycznie istnieje.


//edit - rocktech.pl - Twój kod nie działa.
Co to za ścieżka w logowaniu?
Domyślam się, że powinienem ją jakoś pod siebie przerobić, tylko czy ona ma gdzieś konkretnie prowadzić?
Czy wpiszę byle jaką ścieżkę, a plik z logami sam się utworzy?
Chyba nie, bo przeszukałem cały hosting i nigdzie nie ma tych logów.

RewriteLog ...
RewriteLogLevel ...

z tymi linijkami rewrity nie działają nawet dla nieistniejących.


Adios - nie musisz mi tłumaczyć logiki, bo ja wiem, że to POWINNO działać, tak samo jak to, co miałem, bo DZIAŁAŁO, do czasu.
Wychodzi na to, że śmieszne Hitme.net.pl zrypało jakoś konfigurację. Poraz setny, zawsze coś. A na zgłoszenia nie odpisują.

Rozumiem, że nic nie da rady zrobić? sciana.gif

Zmieniam hosting.
Na nowym nie ma najmniejszego problemu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.