2016-10-05 4 views
1

Я столкнулся с очень странный вопрос относительно перенаправления example.com к www.example.com.htaccess - Как перенаправить не-WWW на WWW

У меня есть серфинг Интернет и пытался много вещей, как как показано ниже

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

но это работает только, если мой URL является, example.com/something затем перенаправляет на www.example.com/something, но это не работает для нормального простого доменного имени.

Это не работает для example.com только

Я пробовал другие варианты, как, как показано ниже

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(.*)$ [NC] 
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Другое один,

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Мой полный файл .htaccess ниже, чем

RewriteEngine On 
RewriteBase/

# If an existing asset or directory is requested go to it as it is 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
RewriteRule^- [L] 

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

#RewriteCond %{HTTP_HOST} !^$ 
#RewriteCond %{HTTP_HOST} !^www\. [NC] 
#RewriteCond %{HTTPS}s ^on(s)| 
#RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

# If the requested resource doesn't exist, use index.html 
RewriteRule ^(.*) #/$1 

<IfModule mod_deflate.c> 
    # Compress HTML, CSS, JavaScript, Text, XML and fonts 
    AddOutputFilterByType DEFLATE application/javascript 
    AddOutputFilterByType DEFLATE application/rss+xml 
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
    AddOutputFilterByType DEFLATE application/x-font 
    AddOutputFilterByType DEFLATE application/x-font-opentype 
    AddOutputFilterByType DEFLATE application/x-font-otf 
    AddOutputFilterByType DEFLATE application/x-font-truetype 
    AddOutputFilterByType DEFLATE application/x-font-ttf 
    AddOutputFilterByType DEFLATE application/x-javascript 
    AddOutputFilterByType DEFLATE application/xhtml+xml 
    AddOutputFilterByType DEFLATE application/xml 
    AddOutputFilterByType DEFLATE font/opentype 
    AddOutputFilterByType DEFLATE font/otf 
    AddOutputFilterByType DEFLATE font/ttf 
    AddOutputFilterByType DEFLATE image/svg+xml 
    AddOutputFilterByType DEFLATE image/x-icon 
    AddOutputFilterByType DEFLATE text/css 
    AddOutputFilterByType DEFLATE text/html 
    AddOutputFilterByType DEFLATE text/javascript 
    AddOutputFilterByType DEFLATE text/plain 
    AddOutputFilterByType DEFLATE text/xml 

    # Remove browser bugs (only needed for really old browsers) 
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4\.0[678] no-gzip 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
    Header append Vary User-Agent 

</IfModule> 

Options -Indexes 

Может ли кто-нибудь помочь мне в этом отношении?

+0

все еще не работает. Я не понимаю, почему он не работает только для ** example.com **. Он работает только на ** example.com/что-то ** –

+0

Если у вас есть другие правила и в вашем .htaccess, то опубликуйте свой полный .htaccess – anubhava

ответ

2

Есть свои правила, как это:

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] 

# If an existing asset or directory is requested go to it as it is 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
RewriteRule^- [L] 

Важно сохранить www правило в качестве первого правила в противном случае ваш пропуском файл правила/каталог будет перескочить на целевую страницу.

+1

Теперь он работает. Я потратил столько времени на это. Спасибо Anubhava .. :) –

Смежные вопросы