Tengo una página web creada en Wordpress v5.4, Theme Twenty Twelve y acabo de instalar un certificado SSL.
Quiero tener tal estructura de redirección (códigos de redirección en rectángulos), para optimizar para SEO:
pero según Google Chrome Site Inspector tengo el siguiente:
Por lo tanto, el esquema no está completamente optimizado, ya que en dos casos hay dos redirecciones en cascada, mientras que debería haber una.
Lo que es extraño, el esquema actual no refleja el archivo .htaccess. Mi archivo .htaccess tiene el siguiente aspecto:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] </IfModule>Por lo tanto, entiendo que el código es que si se ingresa la URL sin https://, el script la reescribe en la versión con https:// y nada más, por lo que debe haber otro lugar donde se realicen otras redirecciones (por ejemplo, con www -> sin www) se están realizando.
Revisé index.php, sin redirecciones.
También comprobé que las líneas adicionales en el archivo .htaccess no sobrescribieran las "ocultas", por lo que si simplemente las agrego, obtengo un error de redireccionamiento múltiple en el navegador web.
¿Podría aconsejarme qué más debo hacer para obtener la estructura deseada de redirecciones?
La primera regla redirige todo www a https://domainname.com/ , la segunda regla es todo http a https://domainname.com/ , un salto
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^www\. [NC] RewriteRule (.*) https://domainname.com/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://domainname.com/$1 [R=301,L] </IfModule> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPressSupongo que la redirección de www a no www se debe a la dirección que configuró en su configuración (panel de control de WordPress → Configuración → General).
Para la redirección que desea lograr, debe agregar condiciones de reescritura para www. en tu .htaccess
RewriteEngine On RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^www\. [NC] RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]