Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [.htaccess] mod_rewrite - priorytet regół
Mephis
post 6.10.2016, 20:18:01
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 1
Dołączył: 16.12.2012

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


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.

Ten post edytował Mephis 6.10.2016, 20:25:07
Go to the top of the page
+Quote Post
trueblue
post 6.10.2016, 20:28:25
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Napisz co chcesz uzyskać, czyli jakie wejście i jakie wyjście.


--------------------
Go to the top of the page
+Quote Post
Mephis
post 6.10.2016, 20:45:07
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 1
Dołączył: 16.12.2012

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


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.
Go to the top of the page
+Quote Post
trueblue
post 6.10.2016, 20:49:09
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


RewriteCond %{REQUEST_URI} ^/katalog_a
RewriteCond %{REQUEST_FILENAME} obrazek.png
RewriteRule ^(.*)$ /files/$1

RewriteCond %{REQUEST_URI} !^/katalog_a
RewriteRule ^(.*)$ /index.php/$1

Ten post edytował trueblue 6.10.2016, 20:49:28


--------------------
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: 26.04.2024 - 16:57