Redirects to external URLs are not allowed

Descripción

Redirects to external URLs are not allowed by default, use \Drupal\Core\Routing\TrustedRedirectResponse for it.

Es posible que al realizar el despliegue en producción de uno de nuestros sitios Drupal, nos encontremos con este error, para solucionarlo sigue los pasos que te cuento a continuación:

Instrucciones

OPCIÓN 1

Pasos para solucionar el error "Redirects to external URLs are not allowed by default":

  1. Abre el archivo settings.php y añade el o los dominios que utilizas para conectarte a tu web, dentro del apartado "Trusted Host".
    $settings['trusted_host_patterns'] = [
      '^mywebsite\.com$',
      '^www\.mywebsite\.com$',
    ];
  2. A continuación, añade las siguientes líneas, justo debajo del bloque que acabas de añadir:
    if (isset($GLOBALS['request']) and '/var/www/mywebsite.com/datos/web/index.php' === $GLOBALS['request']->server->get('SCRIPT_NAME')) {
        $GLOBALS['request']->server->set('SCRIPT_NAME', '/index.php');
    }
  3. Por último, asegúrate de que dentro de la carpeta /web, existe un archivo .htaccess, con la siguiente declaración:
      # If your site is running in a VirtualDocumentRoot at http://example.com/,
      # uncomment the following line:
      RewriteBase /

OPCIÓN 2 (Drupal en Subdirectorio)

  1. En la carpeta public_html, añadir o editar el .htaccess:

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www.)?DOMINIO.com$
    RewriteCond %{REQUEST_URI} !^/SUBFOLDER/web/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /SUBFOLDER/web/$1
    RewriteCond %{HTTP_HOST} ^(www.)?DOMINIO.com$
    RewriteRule ^(/)?$ web/index.php [L]
    </IfModule>
     
  2. Abre el archivo settings.php y añade el o los dominios que utilizas para conectarte a tu web, dentro del apartado "Trusted Host".
    $settings['trusted_host_patterns'] = [
      '^mywebsite\.com$',
      '^www\.mywebsite\.com$',
    ];
  3. Añade, al final de tu archivo settings.php el siguiente código, modificando SUBFOLDER.

if (isset($GLOBALS['request']) and '/SUBFOLDER/web/index.php' === $GLOBALS['request']->server->get('SCRIPT_NAME')) {
    $GLOBALS['request']->server->set('SCRIPT_NAME', '/index.php');
}
 

Snippets relacionados

Lo siento!!!, todavía no tengo contenidos del blog para esta categoría, pero puedes buscar en los Blog o en Cursos

También puedes utilizar el buscador de la parte superior, para encontrar lo que buscas en toda la web.

Más Snippets