[regex, apache] znaki specjalne w nawiasach kwadratowych |
[regex, apache] znaki specjalne w nawiasach kwadratowych |
7.08.2008, 00:36:12
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 9.01.2007 Skąd: Wrocław Ostrzeżenie: (0%) |
Witam.
Mój problem dotyczy wyrażeń do przepisań w .htaccess. Punktem wyjścia było to, że chcę żeby adresy typu http://server/jakis_url przepisywane były do http://server/plik.php?url=jakis_url Nie mogę sobie z tym poradzić; na wstępie, problem jest dalej aktualny i jeśli ktoś poda mi jakiegoś nawet bardzo ogólnego i "zbyt wiele akceptującego" regexpa to będę wdzięczny, ale prosiłbym też o wytłumaczenie problemów. Nawet z takim wyrażeniem (przekierowanie do blank.php żeby zwrócić uwagę na samego regexpa) coś nie działa tak jakbym chciał - jakieś problemy w związku z dwukropkiem: ----------------------- HTACCESS:
----------------------- http://server/xxxx/aaaaaaaa:bbbbbb -- przekierowuje w porządku http://server/aaaaaaaa:bbbbbb -- zwraca 403 forbidden Przed pierwszym dwukropkiem w stringu musi gdzieś wcześniej być slash, inaczej daje 403 (wygląda na jakieś Apache'owe względy bezpieczeństwa? czy jednak coś z wyrażeniem nie w porządku?) Dalej, chcę żeby kropka w stringu też była dozwolona, ale gdziekolwiek ją dodam w nawiasie kwadratowym (normalnie czy też z backslashem), to po restarcie Apache'a (2.2.6 under Win) mam 500 internal server error :/ Czytałem gdzieś, że takie znaki jak * . ? i inne specjalne w nawiasie kwadratowym tracą na swym 'specjalnym' znaczeniu. Czy może ktoś napisać albo podlinkować jakąś porządną stroną z wyjaśnioną obsługą nawiasów kwadratowych? Będę wdzięczny za wszelkie podpowiedzi. Ten post edytował qBK 7.08.2008, 00:38:22 |
|
|
7.08.2008, 10:29:46
Post
#2
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) |
-------------------- :]
|
|
|
7.08.2008, 11:43:16
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 9.01.2007 Skąd: Wrocław Ostrzeżenie: (0%) |
Hmm, no przeczytałem, dzięki - przyda się, ale to dalej nie rozwiązuje mojego problemu. Z samymi regexpami nie mam kłopotów, ale z kropką i dwukropkiem w nawiasie kwadratowym. Kropkę olałem biorąc bardzo ogólne wyrażenie, którego już wcześniej próbowałem, ale nie dawało efektu do końca pożądanego:
RewriteRule ^(.+)$ x.php?id=$1 Dalej są problemy z dwukropkami. http://server/http://www.google.pl dalej jest forbidden. W sumie to jakby chwilę pomyśleć to dwukropki nie za często występują w URL-ach, są np. w Wikipedii, ale tam też dopiero w subfolderze np. pl.wikipedia.org/wiki/Kategoria:Nauka. Pozostaje zrobić http://a/b/http://www.google.pl, bo takie coś działa... Podobnie *, działa ładnie w URL-u 'w podfolderze' (http://a/b/text*text), a http://a/text*text daje 403. Chyba Apache i być może jakieś standardy ISO itd. co do URL-i nakładają jakieś ograniczenia... Ten post edytował qBK 7.08.2008, 11:46:16 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 15:05 |