Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [modrewrite] Problem z wyrażeniem
wlamywacz
post
Post #1





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Mam problem z modrewrite takiego typu:
Chce aby każdy adres beta/{dowolny ciąg znaków bez -} kierowało na beta/blog.php5 - działa to
Chce aby wybranie pliku z końców jpg, png, gif lub css omijało te regułę i otwierało - działa to

Ale jak zrobić że gdy user wpiszę beta/zdjecia/{dowolny ciąg znaków bez -} otworzy mu ten plik i ominie regułę. A oto kod który stworzyłem i proszę o pomoc z dopisaniem do niego ostatniego przypadku.

  1. RewriteRule ^beta/([^-]+[^(\.css|\.jpg|\.png|\.gif)])$ beta/blog.php5 [L]
Go to the top of the page
+Quote Post
Wodzu
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 2
Dołączył: 17.09.2005

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


Cytat(wlamywacz @ 31.05.2008, 17:15:29 ) *
Witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Mam problem z modrewrite takiego typu:
Chce aby każdy adres beta/{dowolny ciąg znaków bez -} kierowało na beta/blog.php5 - działa to
Chce aby wybranie pliku z końców jpg, png, gif lub css omijało te regułę i otwierało - działa to

Ale jak zrobić że gdy user wpiszę beta/zdjecia/{dowolny ciąg znaków bez -} otworzy mu ten plik i ominie regułę. A oto kod który stworzyłem i proszę o pomoc z dopisaniem do niego ostatniego przypadku.

  1. RewriteRule ^beta/([^-]+[^(\.css|\.jpg|\.png|\.gif)])$ beta/blog.php5 [L]

Wybacz, ale Twoja reguła jest dziurawa jak ser szwajcarski, bo jest po prostu niepoprawna składniowo, a działa w miarę OK trochę przez przypadek. Fragment typu [abc] lub [^abc] służy do określania które znaki odpowiednio są/nie są dozwolone (w sensie pasowania do reguły). Adres ze ścieżką typu beta/boooo.piss (lub mnóstwo podobnych, w których rozszerzeniach występują znaki ze zbioru cfgijpns) nie zostanie zamieniony i zapewne skończy się to błędem 404 (not found). Pewnie to niewielki problem, ale w poważniejszych zastosowaniach taka luka może oznaczać kłopoty.
Ponieważ poprawienie tej reguły nie jest praktycznie możliwe w jednym kawałku, proponuję utworzyć najpierw reguły dla każdego z wyjątków (może być w jednej), które przekierowują na ten adres, który został wpisany (czyli de facto nie przekierowują, zostawiają wszystko jak jest), a na samym końcu regułę, która cokolwiek (.*) skieruje na blog5.php. Myślę, że może pomóc także wykorzystanie dyrektywy RewriteCond (warunek dla RewriteRule).

Pozdr.
Wodzu
Go to the top of the page
+Quote Post
wlamywacz
post
Post #3





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Mam włączony wildcard błędy 404 mnie nie obchodzą czy mógłbyś mi pomóc jak to zrobić ? Gdyż sam to napisałem i widać nie poszło mi to (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 26.09.2025 - 13:20