mirror of
https://github.com/getgrav/grav.git
synced 2025-12-05 23:39:58 +01:00
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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user