Mam pewien problem z routerem. Google'owałem trochę i szukałem na forum na temat negacji wyrażen regularnych, bo sądzę, że to właśnie tam znajdę odpowiedź na swoje pytanie, ale wszelkie kombinacje niczego nie wnosiły. Mój front controller przedstawia się tak:

  1. <?php
  2. $frontController = Zend_Controller_Front::getInstance();
  3.      $frontController->throwExceptions(true);
  4.      $frontController->setBaseUrl('/');
  5.      $frontController->addModuleDirectory('../application/controllers/');
  6.      $frontController->setControllerDirectory(array
  7.         (
  8.         'default' => '../application/controllers/',
  9.         'admin' => '../application/controllers/admin/'
  10.         ));
  11.    
  12.      
  13. $router = $frontController->getRouter();
  14. ?>


I teraz użyłem routera Zenda dla bardziej przyjaznych linków. Z tym, że największy problem sprawiają mi tagi, które mają formę www.domena.pl/tag lub www.domena.pl/tag/3 (jeżeli do danego tagu jest więcej niż 20 artykułów, to robię stronnicowanie, a 3 to numer strony). I teraz kiedy usunę dany wpis, wszystko działa poprawnie, czyli:
- kiedy wchodzę do admin/kontroler/akcja/par/par2/par3 - pokazuje mi się panel admina
- kiedy używam Ajaxu dla akcji sprawdzania loginu, to pokazuje mi się poprawny kontroler pobierz (w innym wypadku przekierowuje go do ścieżki z danym tagiem)

Problematyczny wpis wygląda następująco:

  1. <?php
  2. $tagRoute = new Zend_Controller_Router_Route_Regex('([^admin][^pobierz][^tagi][^index][a-z0-9]+)/([^login][0-9]+)|([^admin][^pobierz][^login][^tagi][^index][a-z0-9]+)', array('controller' => 'tag', 'action' => 'pokazarty'),
  3. array(1 => 'nazwa' , 2 => 'strona'));
  4. ?>


Co mnie dziwi, to fakt, że w wypadku wywołania domena.pl/index, uruchamia się kontroler Index i akcja index - mimo, iż nigdzie go nie zdefiniowałem.

Z góry dziękuję za wskazówki.