2016-10-05 9 views
1

に非WWWをリダイレクトするために、私はexample.com www.example.com .htaccessファイル - どのように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 

誰か助けてもらえますか?そうしないと、スキップ、ファイル/ディレクトリのルールは、ランディングページをスキップしますあなたの非常に最初のルールとしてwwwルールを維持することが重要

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] 

+0

まだ動作しません。私はなぜそれが** example.com **のためだけに働いていないのではないのですか? ** example.com/something **のためだけに働いています。 –

+0

.htaccessにも他のルールがある場合は、完全な.htaccessを投稿してください。 – anubhava

答えて

2

は、このようなあなたのルールを持っています。

+1

これは今働いています。私はこれで多くの時間を無駄にしました。ありがとうAnubhava .. :) –

関連する問題