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:
<Files .htaccess> order allow,deny deny from all </Files> RewriteEngine on RewriteRule ^([A-Za-z0-9/_:-]+)$ /blank.php [L]
-----------------------
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.