Merge pull request #759 from getgrav/feature/fix-redirect

Add params, query and fragment when redirecting to a language or default route
This commit is contained in:
Andy Miller
2016-04-06 17:49:43 -06:00

View File

@@ -152,18 +152,35 @@ class Grav extends Container
// Redirection tests
if ($page) {
$url = $page->route();
if ($uri->params()) {
if ($url == '/') { //Avoid double slash
$url = $uri->params();
} else {
$url .= $uri->params();
}
}
if ($uri->query()) {
$url .= '?' . $uri->query();
}
if ($uri->fragment()) {
$url .= '#' . $uri->fragment();
}
// Language-specific redirection scenarios
if ($language->enabled()) {
if ($language->isLanguageInUrl() && !$language->isIncludeDefaultLanguage()) {
$c->redirect($page->route());
$c->redirect($url);
}
if (!$language->isLanguageInUrl() && $language->isIncludeDefaultLanguage()) {
$c->redirectLangSafe($page->route());
$c->redirectLangSafe($url);
}
}
// Default route test and redirect
if ($c['config']->get('system.pages.redirect_default_route') && $page->route() != $path) {
$c->redirectLangSafe($page->route());
$c->redirectLangSafe($url);
}
}