RewriteRule pozwala na /////// w adresach |
RewriteRule pozwala na /////// w adresach |
5.06.2013, 20:43:14
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 16.08.2010 Ostrzeżenie: (0%) |
Witam,
dzisiaj rozpocząłem nierówną walkę z mod_rewrite. Ogarnąłem podstawy wyrażeń regularnych i zasady tworzenia RewriteRule. Wstęp: tworzę stronę w php z adresami o takim wzorcu /index.php?lang=en&id=articleid Chcę do tego stworzyć proste adresy. Dopuszczam taką ich konstrukcję: www.strona.pl/en/article <- dla strony w innym języku niż domyślny (pl) www.strona.pl/article <- dla stron w języku polskim - domyślnym Napisałem dwie reguły CODE RewriteRule ^(en|fr|de){1}\/([a-zA-Z-]{3,10})(\.html)?$ index.php?lang=$1&id=$2 [L] RewriteRule ^([a-zA-Z-]{3,10})(\.html)?$ index.php?id=$1 [L] Pierwsza ma sprawdzać czy sprecyzowano język i czy jest nazwa artykulu. rozszerzenie .html może wystąpić Druga reguła tworzy link gdy nie sprecyzowano wersji językowej. Problem: Przetestowałem te reguły z pomocą http://www.regexp.pl/ i jest ok ale po wrzuceniu tego na serwer przegladarka pozwala rowniez na takie zapisy: http://www.strona.pl////en///artykul.html http://www.strona.pl///////artykul.html Co zrobiłem żle? Pozdrawiam i dziekuje za sugestie |
|
|
6.06.2013, 09:11:10
Post
#2
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 19 Dołączył: 31.05.2013 Ostrzeżenie: (0%) |
Czemu źle od razu? Przecież działa jak należy.
Zobacz sobie http://forum.php.pl///////index.php?showto...p;#entry1049289 Jak chcesz to kontrolować to użyj routingu i przekieruj wszystkie żądania na index.php i tam weryfikuj co jest wpisane w adresie. -------------------- Szukam pracy za granicą jako FrontendDeveloper - AKTUALNE
forum.php.pl/PoszukujePraca_Frontend_Developer_t218107.html |
|
|
6.06.2013, 10:03:38
Post
#3
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 16.08.2010 Ostrzeżenie: (0%) |
Chciałbym zrozumieć dlaczego jest możliwe en////article.html dla wyrażenia regularnego
^(en|fr|de){1}\/([a-zA-Z-]{3,10})(\.html)?$ jeśli to wyrażenie zwraca "false" dla powyższego ciągu. Czyli dzieje się to poza .htaccess tak? A jaka jest idea routingu? każde wywołanie przekazywane jest na index.php i tam sprawdzane? W każdym razie dzieki. |
|
|
Wersja Lo-Fi | Aktualny czas: 15.05.2024 - 04:28 |