¿Cómo redirigir las URL que no son de www a www usando htaccess?

Tengo un sitio web que dice http://www.example.com/ en la raíz de mi sitio web, he agregado el archivo .htaccess para redirigir cualquier solicitud de http://example.com/ a http: //www.example. com /

Recientemente, he creado una nueva sección de “Videos”, por lo que la URL de los videos es http://www.example.com/videos/ . En esta carpeta de videos, tengo otro archivo htaccess que está reescribiendo las entradas de video. Cuando bash acceder a http://example.com/videos/ , no me redirecciona a http://www.example.com/videos/

Creo que .htacces no hereda las reglas anteriores del directorio principal. ¿Alguien puede decirme cuál puede ser la regla que puedo agregar en el archivo .htaccess de la carpeta / videos / para que cualquier solicitud de http://example.com/videos/ se redirija a http: //www.example. com / videos / URL.

Esta es una solución más genérica, porque se puede usar con cualquier nombre de dominio sin tener que especificar el nombre de dominio específico en cada .htaccess:

# Redirect non-www to www: RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

Lo contrario también es posible (www a no-www):

 # Redirect www to non-www RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

Creo que puede ser que su regla existente sea demasiado estricta y no se active en su subdirectorio debido a esto. Algo así debería funcionar en todo el sitio:

 RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule ^(.*) http://www.example.com/$1 [R=301] 

Estas son las mejores soluciones para redirigir URL que no sean www a www usando htaccess. usando este código en el archivo htaccess y revisando url.

 Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^mydomain.com [nc] rewriterule ^(.*)$ http://www.mydomain.com/$1 [r=301,nc] 

Recomiendo a todos que sigan el siguiente método, solo redireccionará el dominio principal, pero no cualquier otro subdirectorio o subdominio en su host.

 # Redirect non-www to www only for main domain # recommended if you have any/some sub-domain(s) RewriteEngine on RewriteBase / # Replace yoursite and .tld respectively RewriteCond %{HTTP_HOST} ^yoursite\.tld$ # Replace yoursite.com RewriteRule ^(.*) http://www.yoursite.com/$1 [R=301] 

Utilice este método si está realmente seguro y espero que nunca use un subdominio con su sitio web, es decir, subdomain.yoursite.com o lo que sea. Entonces puedes utilizar el siguiente método. “Diciendo de nuevo, asegúrate de que realmente quieras usar este método”

 # Redirect all non-www to www including subdomain(s) RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

El siguiente método redireccionará todas las URL de www a no-www, incluyendo sus subdominios, aunque no puede usar http://www.subdirecty.yoursite.com, le indicará un error con 500.

 # Redirect www to non-www RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]