Como redirect URLs não www para www usando o htaccess?

Tenho um website que diz http://www.example.com/ na raiz do meu website, adicionei o arquivo .htaccess para redirect qualquer solicitação de http://example.com/ para http: //www.example. com /

Recentemente, criei uma nova seção “Vídeos” para que o URL dos vídeos seja http://www.example.com/videos/ . Nesta pasta de vídeo eu tenho outro arquivo htaccess que está executando reescrevendo inputs de vídeo. Quando tento acessar http://example.com/videos/ , ele não está me redirecionando para http://www.example.com/videos/

Eu acho que o .htacces não está herdando as regras anteriores do diretório pai. Alguém pode me dizer qual pode ser a regra que eu posso adicionar no arquivo .htaccess de / videos / folder para que qualquer solicitação para http://example.com/videos/ seja redirecionada para http: //www.example. com / videos / URL.

Esta é uma solução mais genérica, porque pode ser usada com qualquer nome de domínio sem ter que especificar o nome de domínio específico em cada .htaccess:

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

O contrário também é possível (www para não www):

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

Eu acho que pode ser apenas que sua regra existente é muito rigorosa e não está sendo acionada em seu subdiretório por causa disso. Algo como isso deve funcionar em todo o site:

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

Esta é a melhor solução para redirect URLs não www para www usando o htaccess. usando este código no arquivo htaccess e verifique o url.

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

Recomendo a todos que sigam o método abaixo, ele só redirectá o domínio principal e não qualquer outro subdiretório ou subdomínio do seu 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] 

Use esse método se tiver certeza e espero que você nunca use sub-domínio com o seu site, ou seja, subdomain.yoursite.com ou qualquer outra coisa. Então você está convidado a usar o método abaixo. “Dizer novamente verifique se você realmente quer usar esse 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] 

O método abaixo irá redirect todos os URL www para não-www, incluindo seus subdomínios, embora você não possa usar http://www.subdirecty.yoursite.com, ele solicitará um erro de 500.

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