#php #cakephp
#php #cakephp
Вопрос:
У меня проблема с перезаписью URL.
Проблема, с которой я сталкиваюсь, заключается в том, что в настоящее время наши URL-адреса выглядят следующим образом:
http://www.xyz.com/sc_users/index
Я не хочу, чтобы имя контроллера отображалось в этом URL.
Есть ли способ добиться этого??
Прежде всего, поблагодарите своих ребят..
Например, у меня есть 8 контроллеров, я не хочу, чтобы имя контроллера отображалось в моем URL …. это то, что я хочу..
Если быть более точным, в моем URL нет имени контроллера
Ответ №1:
Вы можете определять пользовательские маршруты в app/config/routes.php
. Вы найдете все о маршрутах в кулинарной книге CakePHP в разделе Определение маршрутов. Например, пользовательский маршрут может выглядеть следующим образом:
Router::connect(
'/the_url_you_want_to_use/*', array('controller' => 'sc_users', 'action' => 'index')
);
Ответ №2:
Вам нужно прочитать о маршрутизации CakePHP, посмотрите на примеры в разделе «определение маршрутов». Уточните в своем вопросе, как бы вы на самом деле хотели, чтобы выглядели ваши URL-адреса, и мы сможем помочь вам более эффективно.
Комментарии:
1. Прежде всего, поблагодарите своих ребят.. Например, у меня есть 8 контроллеров, я не хочу, чтобы имя контроллера отображалось в моем URL …. это то, что я want..to будьте точнее
Ответ №3:
Это просто: есть файл с именем routes.php в каталоге / config : Вы можете переписать URL-адрес следующим образом :
Router::connect('/pages/*', array('controller' => 'cmsPage', 'action' => 'render'));
Вы можете передавать более сложные переменные своему контроллеру :
Router::connect('/:id-:lang-:profile-:firstName-:lastName-:profile.htm',
array('controller' => 'profiles','action' => 'view'),
array('id'=>'[0-9]*', 'lang'=>'fr','firstName'=>'[^-]*','lastNAme'=>'[^-]*','profile' => $util->keywords['profiles'][0]['fr'], 'pass' => array('id', 'lang'),'profile' => $util->keywords2['profiles'][0]['en'])
)
;
Как вы можете видеть в последнем примере, я передал контроллеру 2 параметра через ‘pass’ => array(‘id’, ‘lang’)