es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“SEO URL y Rewrite Rule en una sola dominio”

Tengo una regla de reescritura para forzar al usuario a ir de example.com a www.example.com. Esto se hace por razones de SEO, para evitar tener sitios web y contenido duplicados en mis resultados de Google.

 # BEGIN Spark

AddDefaultCharset UTF-8

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$  /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
</IfModule>

<IfModule mod_deflate.c>
<FilesMatch "\.(html|php|txt|xml|js|css|ttf|otf|ico|json|svg|)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
# END Spark

Mi pregunta es: si ahora las personas publican un enlace example.com/news, siempre se redirigirán a la página principal como www.example.com. ¿Cómo puedo administrar para que aún puedan usar y publicar URLs cortas como example.com/news1 o example.com/news2 y redireccionar a www.example.com/news1 o www.example.com/news2, respectivamente?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para permitir a los usuarios seguir usando y publicando URLs cortas como example.com/news1 o example.com/news2 mientras se redirige example.com a www.example.com, se puede agregar una nueva RewriteCond y RewriteRule en el archivo .htaccess.

    Agregue las siguientes líneas a su archivo .htaccess debajo de la RewriteRule que redirige example.com a www.example.com:

    RewriteCond %{HTTP_HOST} ^example.com
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule (.*) https://www.example.com/$1 [R=301,L]
    

    Esto coincidirá con las solicitudes a example.com que no están seguidas por una barra diagonal y las redirigirá a www.example.com con la misma ruta. Entonces, si un usuario ingresa example.com/news1, se redireccionarán a www.example.com/news1.

    El código final de .htaccess se verá así:

    # BEGIN Spark
    
    AddDefaultCharset UTF-8
    
    <ifmodule mod_rewrite.c="">
    RewriteEngine On
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [QSA,L]
    RewriteCond %{HTTP_HOST} ^example.com
    RewriteRule (.*) https://www.example.com/$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^example.com
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule (.*) https://www.example.com/$1 [R=301,L]
    </ifmodule>
    
    <ifmodule mod_deflate.c="">
    <filesmatch "\.(html|php|txt|xml|js|css|ttf|otf|ico|json|svg|)$"="">
    SetOutputFilter DEFLATE
    </filesmatch>
    </ifmodule>
    # END Spark
    

    Con estos cambios, los usuarios aún pueden usar y publicar URLs cortas y evitará la redirección no deseada a la página principal cuando intenten acceder a ellas.

Comments are closed.