CakePHP 3.6 & platform.sh, not display flash message at PagesController without slash at end of url
We have problem showing flash message on our home page, when url is without slash at end of url.
Мы используем:
CakePHP 3.6 with App.base path if production server /base/path/app
platform.sh для размещения нашего веб-приложения с маршрутизацией по базовому пути {domain}/base/path/app
Когда мы перенаправляем флэш-сообщение на нашу домашнюю страницу {domain}/base/path/app
флэш-сообщение не отображается (мы пытаемся перезагрузить страницу),
но когда мы называем наш URL как {domain}/base/path/app/
или любой другой контроллер затем отображает флэш-сообщение.
На всех остальных страницах нашего веб-приложения флеш-сообщения работают нормально.
use App\Controller\AppController;
use Cake\Core\Configure;
use Cake\Network\Exception\ForbiddenException;
use Cake\Network\Exception\NotFoundException;
use Cake\View\Exception\MissingTemplateException;
/**
* Static content controller
*
* This controller will render views from Template/Pages/
*
* @link https://book.cakephp.org/3.0/en/controllers/pages-controller.html
*/
class PagesController extends AppController
{
public function initialize()
{
parent::initialize();
}
/**
* Displays a view
*
* @param array ...$path Path segments.
* @return \Cake\Http\Response|null
* @throws \Cake\Network\Exception\ForbiddenException When a directory traversal attempt.
* @throws \Cake\Network\Exception\NotFoundException When the view file could not
* be found or \Cake\View\Exception\MissingTemplateException in debug mode.
*/
public function display(...$path)
{
$count = count($path);
if (!$count) {
return $this->redirect('/');
}
if (in_array('..', $path, true) || in_array('.', $path, true)) {
throw new ForbiddenException();
}
$page = $subpage = null;
if (!empty($path[0])) {
$page = $path[0];
}
if (!empty($path[1])) {
$subpage = $path[1];
}
$this->set(compact('page', 'subpage'));
try {
$this->render(implode('/', $path));
} catch (MissingTemplateException $exception) {
if (Configure::read('debug')) {
throw $exception;
}
throw new NotFoundException();
}
}
}
маршрутизации:
$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
редактировать
@platform.sh у нас нет переменных сессий, когда URL-адрес без косой черты в конце URL-адреса домашней страницы.
Благодарю.