Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z mod_rewrite
kkowalskipl
post 23.06.2012, 15:12:22
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 8.08.2011

Ostrzeżenie: (0%)
-----


Witam, potrzebuję zrobić obsługe mod_rewrite przy takiej konstrukcji:
http://127.0.0.1/framework/index.php?contr...mp;action=index

i wymieniane Index i index

Zrobiłem tak:
Options FollowSymLinks
RewriteEngine On

RewriteRule ^([^-]+)/([^-]+)$ index.php?controller=$1&action=$2 [L]

I przy kontrukcji gdzie mam sztywno Index/index, Index/register itd jest ok, ale mod_rewrite musi obslugiwac tez to gdy slash jest na koncu np Index/index/ czyli i tak i tak. Dodatkowo zmienna controller moze wystapic sama, bez action co tez musi zostac obsluzone. controller i action moga zwierac tylko litery(male i duze) i cyfry.
Go to the top of the page
+Quote Post
!*!
post 23.06.2012, 15:15:17
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Może coś w tym stylu:
Cytat
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)?\/?$ index.php?controller=$1&action=$2 [L]


Ten post edytował !*! 23.06.2012, 15:16:13


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
kkowalskipl
post 23.06.2012, 15:46:49
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 8.08.2011

Ostrzeżenie: (0%)
-----


ok, działa z tym slashem, ale co jeśli controller wystepuje sam? wtedy nie znajduje drugiej zmiennej i jest 404 co zrobic?
Go to the top of the page
+Quote Post
!*!
post 23.06.2012, 15:49:55
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Co znaczy że wpisujesz sam? Chodzi Ci o sytuacje gdy URI niczego nie zawiera?

Cytat
RewriteRule ^([a-zA-Z0-9]+)?\/?([a-zA-Z0-9]+)?\/?$ index.php?controller=$1&action=$2 [L]


? - oznacza że może wystąpić lub nie.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
kkowalskipl
post 23.06.2012, 16:12:53
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 8.08.2011

Ostrzeżenie: (0%)
-----


Zrobiłem tak:
RewriteRule ^([a-zA-Z0-9]+)/?([a-zA-Z0-9]+)?/?$ index.php?controller=$1&action=$2 [L]

i już działa. Dzieki za pomoc smile.gif

A tak w ogóle to czemu dałeś backslash przed slashem u siebie w przykładzie? bez też działa...hm??
Go to the top of the page
+Quote Post
!*!
post 23.06.2012, 16:29:16
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Z przyzwyczajenia, odnośnie wyrażeń regularnych, znaki specjalne poprzedza się backslashem, jednak nie jest to wymagane.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 18:29