From 6968e2edff2a147289cdcaaa3e6de7f255f5c40d Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Sat, 21 Jan 2017 16:25:13 -0700 Subject: [PATCH] Fix `Response` object to handle `303` redirects when `open_basedir` in effect [#1267] --- CHANGELOG.md | 1 + system/src/Grav/Common/GPM/Response.php | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7397b7461..71e6c6308 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * Added a new `Collection::merge()` method to allow merging of multiple collections [#1258](https://github.com/getgrav/grav/pull/1258) 1. [](#bugfix) * Fixed an issue when page collection with header-based `sort.by` returns an array [#1264](https://github.com/getgrav/grav/issues/1264) + * Fix `Response` object to handle `303` redirects when `open_basedir` in effect [#1267](https://github.com/getgrav/grav/issues/1267) # v1.1.14 ## 01/18/2017 diff --git a/system/src/Grav/Common/GPM/Response.php b/system/src/Grav/Common/GPM/Response.php index 3bb6b2062..80ecac202 100644 --- a/system/src/Grav/Common/GPM/Response.php +++ b/system/src/Grav/Common/GPM/Response.php @@ -361,7 +361,7 @@ class Response return curl_exec($ch); } - $max_redirects = isset($options['curl'][CURLOPT_MAXREDIRS]) ? $options['curl'][CURLOPT_MAXREDIRS] : 3; + $max_redirects = isset($options['curl'][CURLOPT_MAXREDIRS]) ? $options['curl'][CURLOPT_MAXREDIRS] : 5; $options['curl'][CURLOPT_FOLLOWLOCATION] = false; // open_basedir set but no redirects to follow, we can disable followlocation and proceed normally @@ -386,7 +386,7 @@ class Response $code = 0; } else { $code = curl_getinfo($rch, CURLINFO_HTTP_CODE); - if ($code == 301 || $code == 302) { + if ($code == 301 || $code == 302 || $code == 303) { preg_match('/Location:(.*?)\n/', $header, $matches); $uri = trim(array_pop($matches)); } else {