Я использую cake php, и по какой-то причине я хочу скрыть контроллер и имя действия от url. текущий url нам нравится
http://192.168.1.31/home/this_is_test
где home – имя контроллера, а this_is_test
– это slug, который является динамическим. мне нужен URL-адрес
http://192.168.1.31/this_is_test .
my routes.php – это
Router::connect('/', array('controller' => 'home', 'action' => 'index')); Router::connect('/dashboard', array('controller' => 'dashboard', 'action' => 'index')); Router::connect('/login', array('controller' => 'users', 'action' => 'login')); Router::connect('/admin/login', array('controller' => 'users', 'action' => 'login', 'admin' => true)); Router::connect('/contents/*', array('controller' => 'contents', 'action' => 'view')); Router::connect('/home/*', array('controller' => 'Home', 'action' => 'index'));
Я прочитал пару решений после поиска в Google. также пробовал это в route.php. но не повезло
Router::connect( '/:query', array('controller' => 'Home', 'action' => 'index',1), array('query' => '[a-zA-Z]+') );
у кого-нибудь есть идея об этом, если это возможно ???
Ваше решение
Для статического текста попробуйте следующее:
Router::connect('/this_is_test', array( 'controller' => 'home', 'action' => 'this_is_test OR any_other action name' ));
Если он динамичен
Router::connect('/:id', array('controller' => 'home', 'action' => 'index'), array( 'pass' => array('id'), array('id' => '[A-Za-z]') ) );
Ссылки: Cakephp2.x Route
Надеюсь, я знал, чего вы действительно хотите достичь. Вы можете поместить маршрут в последнюю позицию. Вот ссылка .
Другой вариант – использовать псевдоним для вашего контроллера. Поэтому вы вызываете свой контроллер еще что-то еще и устанавливаете новое имя для своего контроллера, а затем вызываете его в своем маршруте.
Если это не сработает, вам нужно будет написать компонент на заказ, чтобы помочь вам это сделать.