Я использую Cakephp 2.0, и у меня есть настройка контроллера, чтобы принять динамический url для отображения одного и того же представления:
http://domain/some-text-sid-2
http://domain/some-text-sid-3
.
.
.
Все содержимое страниц изменяется соответственно с помощью ajax. Но когда я посещаю эту страницу или перенаправляю на эту страницу с другой страницы, я хочу показать представление, представленное в ссылке, упомянутой ниже
http://domain/some-text
но URL-адрес должен оставаться таким же. Например, если я посещаю страницу:
http://domain/some-text-sid-2
то представление должно быть
http://domain/some-text
но URL-адрес не должен меняться. Пожалуйста, помогите и заблаговременно.
Возможным решением является добавление следующего маршрута в /Config/routes.php
:
//Matches anything except URLs that include 'my_controller' to prevent looping
Router::redirect('/:text', array('controller' => 'my_controller', 'action' => 'my_action'), array('persist' => ['text'],'text'=>'(?!my_controller)(.*)'));
Затем вы извлекаете text
в своем действии после перенаправления:
class MyController extends AppController
{
public function my_action() {
$text = $this->params->named['text'];
//[...] process action
}
}