]> git.mxchange.org Git - friendica.git/commitdiff
add status code to System::externalRedirect
authorPhilipp Holzer <admin@philipp.info>
Sat, 4 May 2019 07:16:37 +0000 (09:16 +0200)
committerPhilipp Holzer <admin@philipp.info>
Sat, 4 May 2019 07:16:37 +0000 (09:16 +0200)
src/Core/System.php
src/Module/Diaspora/Fetch.php

index e2966a9b0e8df7d69b96fb765a76da40503aad19..31934af5a73e055474b035561690f067bd872201 100644 (file)
@@ -223,15 +223,27 @@ class System extends BaseObject
         * Redirects to an external URL (fully qualified URL)
         * If you want to route relative to the current Friendica base, use App->internalRedirect()
         *
-        * @param string $url The new Location to redirect
+        * @param string $url  The new Location to redirect
+        * @param int    $code The redirection code, which is used (Default is 302)
+        *
         * @throws InternalServerErrorException If the URL is not fully qualified
         */
-       public static function externalRedirect($url)
+       public static function externalRedirect($url, $code = 302)
        {
                if (empty(parse_url($url, PHP_URL_SCHEME))) {
                        throw new InternalServerErrorException("'$url' is not a fully qualified URL, please use App->internalRedirect() instead");
                }
 
+               switch ($code) {
+                       case 302:
+                               // this is the default code for a REDIRECT
+                               // We don't need a extra header here
+                               break;
+                       case 301:
+                               header('HTTP/1.1 301 Moved Permanently');
+                               break;
+               }
+
                header("Location: $url");
                exit();
        }
index 46d93880621b87c519ad239953da4ee46beac9c2..bcb33e3359aebf18c04b4a754ca8ac61bbfe6c04 100644 (file)
@@ -4,6 +4,7 @@ namespace Friendica\Module\Diaspora;
 
 use Friendica\BaseModule;
 use Friendica\Core\Protocol;
+use Friendica\Core\System;
 use Friendica\Model\Item;
 use Friendica\Model\User;
 use Friendica\Network\HTTPException;
@@ -44,7 +45,7 @@ class Fetch extends BaseModule
 
                                if (Strings::normaliseLink($host) != Strings::normaliseLink($app->getBaseURL())) {
                                        $location = $host . "/fetch/" . $app->argv[1] . "/" . urlencode($guid);
-                                       $app->redirect($location);
+                                       System::externalRedirect($location, 301);
                                }
                        }