anton_reut
@anton_reut
Начинающий веб-разработчик

Yii как заменить %2F на нормальный слэш в адресной строке?

В общем хочу получить нормальный читаемый адрес, чтобы не напрягаясь сразу было видно что за контроллер и экшен, но знак %2F ввергает меня в тоску и осеннее уныние.
Как превратить это: /index.php?r=items%2Fview&id=1
В это: /index.php?r=items/view&id=1

("красивые" url вида site.ru/items/1 уже делал, знаю как делается, но для обучения считаю что полезным будет видеть всё как было изначально)
  • Вопрос задан
  • 405 просмотров
Пригласить эксперта
Ответы на вопрос 1
kimono
@kimono
Web developer
Если не использовать enablePrettyUrl и взглянуть на метод UrlManager::createUrl(), то мы увидим процесс формирования ссылки:
$url = "$baseUrl?{$this->routeParam}=" . urlencode($route);
if (!empty($params) && ($query = http_build_query($params)) !== '') {
  $url .= '&' . $query;
}
return $url . $anchor;

И сразу станет понятно, что замена "/" на "%2F" происходит именно в urlencode.
Можете попробовать отнаследоваться от UrlManager и изменить этот метод, но тогда нужно также проверить метод парсинга запроса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы