Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> rewrite rule, przenoszenie do kontrolera w MVC
topgun777
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 27.05.2008

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


Czesc
Mam taki problem otórz robie sobie aplikacje typu cms i na frameworku o strukturze MVC i mam zgryz z czyms takim jak poniżej:

CODE
RewriteEngine On
RewriteBase /cms/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#odwolanie się do kontrolera wczytującego stronę CMS'a:
RewriteRule ^(.*)$ index.php/cms/index/$1 [L]

#admin panel:
RewriteRule ^admin/(.*)$ index.php/admin/$1 [L]


chodzi mi o to ze jak dokonuje się dowolnego wpisu adres_strony/jakas nazwa
to "jakas nazwa" ma kierować do kontorlera cms i akcji index i przekazac tam parametr "jakas nazwa" i to działa dobrze
ale jeszcze chce miec panel administratora i chce zrobic drugie rule na to ze jak ktos wpisze adres_strony/admin/akcja to zeby go kierowało do "akcja" w kontrolerze admin.

Ogolnie to chodzi o to zeby z pierwszej rule wykluczyć "admin" i zeby dla "admin" działało drugie rule i nie wiem jak to zrobic czy ma ktoś pomysłquestionmark.gif

Sprawa jest pilna:|

z góry dzięki za pomoc
Go to the top of the page
+Quote Post
planet
post
Post #2





Grupa: Zarejestrowani
Postów: 61
Pomógł: 6
Dołączył: 15.07.2009
Skąd: Śląsk->Ruda Śląska

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


Spróbuj to:
CODE

#admin panel:
RewriteRule ^admin/(.*)$ index.php/admin/$1 [L]


Zamienić na to:

CODE

#admin panel:
RewriteRule admin/(.*)$ index.php/admin/$1 [L]
Go to the top of the page
+Quote Post
topgun777
post
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 27.05.2008

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


juz próbowałem takie cos nie działało zrobiłem to inczej i działa puki co, jest teraz tak ze mam poprostu katalog admin
w katalogu tym jest kolejny htaccess i nowa aplikacja takze wieć wszystko inne niż /admin jest obsługiwane przez pierwszą aplikacje
a "/admin" jest obsługiwane przez ta nową aplikację. W sumie plus tego taki ze mam niezależne z pozoru aplikacje i moge je niezależnie od siebie rozwijać.
Go to the top of the page
+Quote Post
ziqzaq
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Spróbuj w ten sposób (tylko lekko dostosuj do swoich potrzeb):
Kod
RewriteEngine On
RewriteBase /cms/

#admin panel:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/?(.*)$ admin.php/$1 [PT,L]

#odwolanie się do kontrolera wczytującego stronę CMS'a:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [PT,L]


~planet
Jeśli się nie mylę to modyfikator L oznacza ostatnią regułę rewrite. Czyli ^(.*)$ spowoduje, że reguła admina (która jest później) się nie wykona (i chyba będzie internal server error).
Go to the top of the page
+Quote Post
planet
post
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 6
Dołączył: 15.07.2009
Skąd: Śląsk->Ruda Śląska

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


~ziqzaq rzeczywiście masz racje, parametr [L] przerywa wykonywanie pliku, jeśli ciąg pasuje do wzorca, czyli faktycznie admin/ się nie wykona. być może wystarczy zamienić kolejność wyrażeń - najpierw admin, potem cms.
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 Aktualny czas: 21.08.2025 - 12:48