Добрый день. Можно ли как то в контроллере как то сделать такое? в hataccess не могу, так как некоторый функционал перестал работать, а так как мне это нужно исключительно для фронта, то интересует это решение с помощью контроллера.
нужно
site/products/ -> site/products и т.д.
Так же есть проблема, в некоторых ссылках (категориях) которые работают с помощью одного и того же контроллера. при попытке зайти site/products/catname/ перекидывает на 404 и к ссылке добавляет /%7B/%7D в конец.
Редирект страниц со слешом на без слеша в контроллере.
Редирект страниц со слешом на без слеша в контроллере.
Download TV Series in HD http://serialsfree.net/
Re: Редирект страниц со слешом на без слеша в контроллере.
Код: Выделить всё
class BaseController extends CController {
public function init() {
parent::init();
// Remove any double slashes and force a trailing slash to the request URI
$requestUri = Yii::app()->request->requestUri;
$repairedRequestUri = $requestUri;
while (false !== strpos($repairedRequestUri, '//')) {
$repairedRequestUri = preg_replace("////", '/', $repairedRequestUri);
}
if (false === strpos($repairedRequestUri, '?') && '/' !== substr($repairedRequestUri, strlen($repairedRequestUri) - 1, 1)) {
$repairedRequestUri = "{$repairedRequestUri}/";
}
elseif('/' !== substr($repairedRequestUri, strpos($repairedRequestUri, '?') - 1, 1)) {
$repairedRequestUri = substr($repairedRequestUri, 0, strpos($repairedRequestUri, '?')).'/'.substr($repairedRequestUri, strpos($repairedRequestUri, '?'));
}
if ($repairedRequestUri !== $requestUri) {
Yii::app()->request->redirect($repairedRequestUri, true, 301);
}
}
}
Re: Редирект страниц со слешом на без слеша в контроллере.
Решение скинутое выше работает, но если его использую, то из форм не передаются post данные. что-то еще нужно добавить?