Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenie regularne w HTACCESS, Problem z przekierowaniem na określone pliki.
adbacz
post 24.07.2012, 14:07:24
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


HTACCESS powinien przekierowywać wszystkie requesty na index.php, chyba, że dany request sięga po plik, lub prowadzi do jednej z określonych ścieżek. Otóż dwa pierwsze działają poprawnie, gorzej z tymi ścieżkami.

Kod
Options FollowSymLinks
RewriteEngine On

# Prawdziwe katalogi na serwerze
RewriteRule ^Templates/?(.*)? Templates/$1 [L]
RewriteRule ^media/(.*)$ media/$1 [L]

# admin kieruje na prawdziwy katalog Administrator. Nie pytajcie dlaczego tak;/
RewriteRule ^admin$ Administrator/index.php [L]
RewriteRule ^admin/(.*)$ Administrator/index.php [L]

# Pozostała część, która prowadzi do pliku index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php


Problem jest taki, że gdy chcę na przykład odwołać się do pliku który nie istnieje, na przykład w ścieżce /Templates/Images/image.png to HTACCESS kieruje ten request na index.php.

Prosze o pomoc, bo nie daję sobie już rady z tym.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
n3o
post 24.07.2012, 22:18:09
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.12.2008
Skąd: Siemianowice Śląskie

Ostrzeżenie: (0%)
-----


U siebie korzystam z czegoś takiego i działa, spróbój:
Kod
RewriteCond    %{REQUEST_FILENAME} !-d
RewriteCond    %{REQUEST_FILENAME} !-s

RewriteRule    ^(.*)$  index.php?request=$1 [L,NC,QSA]


-s oznacza że nie wykona przekierowania gdy plik ma rozmiar > 0
-d oznacza ze nie wykona przekierowania gdy katalog istnieje
Go to the top of the page
+Quote Post
adbacz
post 25.07.2012, 06:11:15
Post #3





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


W moim przypadku nie odwołuję się bezpośrednio do katalogu tylko do pliku więc !-d nie zadziała. Po drugie, jesli pliku nie ma to nie może on mieć więcej niż rozmiar 0 wink.gif
Go to the top of the page
+Quote Post
erix
post 25.07.2012, 08:40:13
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




[APACHE] pobierz, plaintext
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteCond %{REQUEST_URI} !^Templates
  3. RewriteRule ^(.*) index.php
[APACHE] pobierz, plaintext


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
adbacz
post 25.07.2012, 11:22:19
Post #5





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Niestety kod erixa też nie działa. Można jakoś inaczej obejść to? Może inacej napisać wszystkie reguły?
Go to the top of the page
+Quote Post
Sephirus
post 25.07.2012, 11:53:08
Post #6





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Daj w katalogu w którym nie chcesz aby przenosiło na index.php coś takiego w .htaccess:

Kod
RewriteEngine Off


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
adbacz
post 25.07.2012, 12:03:35
Post #7





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Dodałem do katalogu Templates i do każdego podkatalogu do którego się odwołuje podczas chęci pokazania obrazka którego nie ma ale to nic nie daje - nadal ten sam problem.
Go to the top of the page
+Quote Post
erix
post 25.07.2012, 12:40:58
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Pokaż teraz cały htaccess.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
adbacz
post 25.07.2012, 13:46:21
Post #9





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Kod
Options FollowSymLinks
RewriteEngine On

RewriteRule ^Templates/(.*)$ Templates/$1 [L]
RewriteRule ^media/(.*)$ media/$1 [L]

RewriteRule ^admin$ Administrator/index.php [L]
RewriteRule ^admin/(.*)$ Administrator/index.php [L]


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^Templates
RewriteRule ^(.*) index.php
Go to the top of the page
+Quote Post
erix
post 25.07.2012, 14:09:02
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Spróbuj testować inną zmienną.

A najlepiej włącz logowanie reguł i sprawdź, co przechodzi, a co nie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
adbacz
post 25.07.2012, 14:13:11
Post #11





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Nie jestem zbyt obeznany w mod_rewrite. Możesz mi powiedzieć jaką zmienną i gdzie włączyć te logowanie, bardzo byłbym wdzięczny?
Go to the top of the page
+Quote Post
erix
post 25.07.2012, 14:20:38
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Otwiera Ci się strona http://google.pl?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
adbacz
post 25.07.2012, 15:33:04
Post #13





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Tak, wiem. Nie znalazłem nic o logowaniu reguł, a wszystkie zmienne, które mogły by tutaj coś dać zostały już użyte wcześniej lub są używane teraz.
Go to the top of the page
+Quote Post
erix
post 26.07.2012, 08:38:18
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No patrz, pod latarnią najciemniej? http://httpd.apache.org/docs/2.2/mod/mod_r...html#rewritelog


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
adbacz
post 26.07.2012, 09:03:10
Post #15





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Przy użyciu tego, na localhost oraz na zewnętrznym serwerze pokazuje się błąd 500. Sprawdzałem też RewriteLogLevel, ale tak samo pokazuje się błąd. Trzeba mieć jakieś inne rozszerzenie zainstalowane albo włączona jakąś opcję? Nie pisze nic takiego przy punkcie dotyczącym RewriteLog.
Go to the top of the page
+Quote Post
erix
post 26.07.2012, 09:21:18
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Może masz nie tę wersję, co trzeba?

Kiedyś z tego korzystałem i działało bez problemów.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
adbacz
post 26.07.2012, 09:42:41
Post #17





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Wersję czego? mod_rewrite? Gdzie tego wersję można sprawdzić?
Go to the top of the page
+Quote Post
erix
post 26.07.2012, 10:05:14
Post #18





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Powiedziałeś, że serwer.

Serwerów może być dziesiątki. Jakie szczegóły podajesz, takie będą odpowiedzi.

I wybacz, ale to Tobie ma zależeć na rozwiązaniu problemu, a nie nam. I ciąganie za język jest stratą czasu dla nas wszystkich. Więc rób użytek z głowy i wyszukiwarek, a dopiero potem zadawaj pytania.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:37