![]() |
![]() ![]() |
![]() |
![]()
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ł ![]() Sprawa jest pilna:| z góry dzięki za pomoc |
|
|
![]()
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] |
|
|
![]()
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ć. |
|
|
![]()
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). |
|
|
![]()
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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 12:48 |