mod_rewrite profil uzytkownika

0

Witam,
chce uzyskać sytuacje, że pod adresem
http://domena.pl/login_usera wyswietla sie adres
http://domena.pl/index.php?page=user&login=login_usera

Wstepnie zrobilem taka formule
RewriteRule ^(.+)/?$ index.php?page=user&login=$1 [QSA]

jednak ma ona wady.
jesli wpisze np. http://domena.pl/vedor to faktycznie zmienna login dostaje wartość "vedor"
jednak jak bedzie
http://domena.pl/vedor/ to login jest przypisany jako "vedor/" czyli ze shaslem na końcu a wg mnie nie powinno byc.

Druga sprawa mam wszystkie obrazki w katalogu /photos i on ten katalog również stara się dopasować do tej reguły czyli zamiast wyświetlić zdjęcia przekierowuje na index.php?page=user.....

1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/?$ index.php?page=user&login=$1 [QSA]

Z tym slashem to powinno działać tak, żeby tego slasha nie łapało, hmm. Jeżeli w nazwie W OGÓLE nie może być slasha (a nie tylko na końcu) to po prostu zrób ^([^/]+)/?$ i zadziała na pewno

0

Jest wszystko dobrze. Działa jak należy z jednym wyjątkiem.
Moj plik aktualnie wygląda tak:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^logout$ logout.php [L]

RewriteRule ^([^/]+)/?$ index.php?page=user&login=$1 [L,QSA]

Pomimo tego, że przy części dotyczącej wylogowania czyli logout jest na końcu [L] to i tak wykonuje tą regułe dotyczącą profilu użytkownika. Zmienne GET wyglądają następująco przy adresie http://domena.pl/logout:

Array ( [page] => user [login] => logout.php ) 

Nie mam pojęcia czemu tak się dzieje, chyba powinno zatrzymać się przy części dotyczącej "logout" i przekierować na plik logout.php poprzez zastosowanie znacznika [L]

0

A tu mnie zaskoczyło, szczególnie, że to bierze logout.php czyli nazwę docelowego pliku php. Ja zazwyczaj albo nie mam potrzeby ruszania htaccessów, albo korzystam z jednego, który i tak łapie wszystko. Co ciekawsze, patrz na to:

RewriteRule ^logout$ index.php?a=1 [L,QSA]
RewriteRule ^(.*)$ index.php?user=cos&module=$1 [L,QSA]

array (size=3)
'user' <font color="#888a85">=></span> string <font color="#cc0000">'cos'</span> (length=3)
'module' <font color="#888a85">=></span> string <font color="#cc0000">'index.php'</span> (length=9)
'a' <font color="#888a85">=></span> string <font color="#cc0000">'1'</span> (length=1)

Jednak widzę, że nie ogarniam mod_rewrite o.O Manual mi nie pomógł

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