маршрут CakePHP, чтобы не допустить расширение файла - PullRequest
1 голос
/ 17 февраля 2012

Мне нужен маршрут CakePHP, который будет перехватывать все URL, если они не совпадают с предыдущими маршрутами, которые не содержат расширений файлов.

Текущий маршрут для ловли всех ниже

Router::connect('/*', array('controller' => 'frontend', 'action' => 'display',null));

Мне нужно изменить вышеуказанный маршрут, чтобы не все URL с расширениями файла были перехвачены

Ответы [ 2 ]

0 голосов
/ 30 июля 2012

В моем приложении на основе CakePHP 1.2 добавлено расширение donr для добавления расширения к динамически генерируемым изображениям:

Router::connect('/postImage/*', array('controller' => 'posts','action' => 'postImage', 'url' => array('ext' => 'png')));

Приведенный выше код делает доступными оба следующих URL: http://myhost.com/posts/postImage/125 и http://myhost.com/posts/postImage/125.png

Я думаю, что то же самое будет с CakePHP 1.3, и я надеюсь, что это поможет вам.

0 голосов
/ 06 марта 2012

Я не очень хорошо понимаю ваше требование, но вы можете сделать это:

Router::parseExtensions('html');
Router::connect('/*/:title', array('controller' => 'frontend', 'action' => 'display',null), 
              array(
        'pass' => array('title')
      )
);  

И ссылка:

$html->link('Title', array('controller' => 'frontend', 'action' => 'display', 'title' => Inflector::slug('text to slug', '-'), 'ext' => 'html'))

Надеюсь, это поможет вам. удачи

...