Mod Rewrite - podwójny $_GET na underscorze

0

Witam. Mam drobny problem - a właściwie to nawet nie wiem jak się za to zabrać. Na chwilę obecną mój plik .htaccess, prezentuje się następująco:

Options -Indexes +FollowSymLinks -MultiViews

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9]{18})$ show_file.php?f=$1 [L,QSA]
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Chciałbym jednak dorzucić do niego pewną rzecz - ma się ona tyczyć przedostatniej linijki. Chciałbym by, np. następujący link:

http://jakasdomena.pl/9mhgAI0gzUUXLGmzfd_png

prezentowała się w następujący sposób:

http://jakasdomena.pl/show_file.php?f=9mhgAI0gzUUXLGmzfd&t=png

Nie mam bladego pojęcia jak się za to nawet zabrać. Dzięki za wszelką pomoc. Pozdrawiam.

1
RewriteRule ^([A-Za-z0-9]{18})_([A-Za-z0-9]{3-4})$ show_file.php?f=$1&t=$2 [L,QSA]

takie coś mi przychodzi na myśl na pierwszy rzut oka. da Ci rozszerzenia 3i4 znakowe

0

Spróbowałem Twojego kodu - niestety nie wydaje się działać. :<

The requested URL /GIVjnfoPKSCoYlusSx_png.php was not found on this server.

Dziwi mnie też, dlaczego postawiłeś underscore, w miejscu daleko przed {3-4}..?

1

to regexp - był błąd może teraz będzie lepiej + pozwól że wyjaśnię Ci jak ja to czytam (pewnie coś się machnę, to ktoś mądrzejszy mnie poprawi ;) ):

^ - Reguła musi pasować na początku ciągu znaków
( - zacznij grupę chwytającą o ID 1
  [A-Za-z0-9] - dopasuj małe i duże litery oraz cyftry
  {18} - dokładnie 18 razy
) - przechwyć grupę
_ - dopasuj dokładnie znak podkreślinka
( - zacznij grupę chwytającą o ID 2
  [A-Za-z0-9] - dopasuj małe i duże litery oraz cyftry
  {3,4} - minum 3 wystąpienia poprzedniej reguły, maksimum 4 (tu miałem błąd, powinien być przecinek nie kreska)
) - przechwić grupę
$ - dopasuj koniec ciągu

jak widzisz, underscore musi być daaaaleko przed {3,4} jak i nawet przed grupą chwytająca (capture group)

teraz po cholere te grupy: $1 wstawi w to miejsce to co przechwyciła pierwsza grupa, a $2 to co druga grupa.
Mam nadzieje że teraz pomoże :)

ps do @furious programming - jakie kolorwanie składni powinienem dać na wyjaśnianie regexpa? bo nie mogę znaleźć...
hmmm...
edit:
pełny regex z kolorowaniem!:

^([A-Za-z0-9]{18}) _([A-Za-z0-9]{3,4})$

@dzek69 - znalazłem!!! "pcre"
ale niestety komentarze na pcre są dziwne i bolą po oczach

0

Świetnie. Wszystko działa jak należy. :)

Dzięki wielkie, jestem Twoim dłużnikiem!

1 użytkowników online, w tym zalogowanych: 0, gości: 1