Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [.htaccess] mod_rewrite - priorytet regół
Forum PHP.pl > Forum > Serwery WWW > Apache
Mephis
Witam.

Męczę się z pewną drobnostką już dłuższa chwilę i mimo prześledzenia wielu tematów nie udało mi się rozwiązać problemu...

Zawartość .htacces wygląda nastepująco:
  1. RewriteEngine On
  2.  
  3. RewriteCond %{REQUEST_URI} ^/(.*)$
  4.  
  5. RewriteCond $1 ^(katalog_a|katalog_b)
  6. RewriteRule ^(.*)$ /files/$1 [L]


No i... Chciałbym, aby po wpisaniu przykładowego adresu:
strona.loc/katalog_a/obrazek.png
Przekierował mnie na: strona.loc/files/katalog_a/obrazek.png
...no i tak się dzieję, wszystko w porządku - przekierowanie zostaje wykonane poprawnie.

Dokładam do tego (po pierwszej regule):
  1. RewriteCond $1 !^(index\.php|robots\.txt|katalog_a|katalog_b)
  2. RewriteRule ^(.*)$ /index\.php/$1 [L]

Aby każdy ciąg znaków inny niż te wymienione, został doklejony po index.php/

No i wtedy pierwsza reguła nie działa.
Działa ta druga, pomimo, że pierwsza zostaje dopasowana i jest ostatnią do przetworzenia.
Ta druga reguła działa... a nie powinna, bo przecież ciąg znaków nie może zaczynać się od katalog_a, czy katalog_b...

Co jest nie tak?

Proszę o pomoc.
trueblue
Napisz co chcesz uzyskać, czyli jakie wejście i jakie wyjście.
Mephis
Po wpisaniu:
strona.loc/katalog_a/obrazek.png
Chcę zostać przekierowany na strona.loc/files/katalog_a/obrazek.png

Zaś po wpisaniu adresu, w którym ciąg znaków po / NIE zaczyna się od "katalog_a", chcę zostać przekierowany na strona.loc/index.php/<ciąg_znaków>, gdzie ten cały ciąg znaków zostanie doklejony w odpowiednie miejsce.

Problem polega na tym, że gdy działa druga reguła, pierwsza przestaje.
trueblue
RewriteCond %{REQUEST_URI} ^/katalog_a
RewriteCond %{REQUEST_FILENAME} obrazek.png
RewriteRule ^(.*)$ /files/$1

RewriteCond %{REQUEST_URI} !^/katalog_a
RewriteRule ^(.*)$ /index.php/$1
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-2024 Invision Power Services, Inc.