2016-11-28 14 views
1

私は現在.htaccessファイルに2つの書き換えルールを持っており、別のものを追加する必要があります。しかし、GTMetrixはすでに述べここに私のFの評価を与えている:避けランディングページは、最初のリダイレクトがURLにwww.を追加.htaccess rewrite consolidation

  1. リダイレクトします。

  2. 2番目のリダイレクトは、URLにサブディレクトリを追加します。

  3. 第3の(提案された)リダイレクトは、httpsをURLの先頭に追加します。

RewriteEngine on 

#First rewrite any request to the wrong domain to use the correct one (here www.) 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

#Then, rewrite to /catalog 
RewriteCond %{REQUEST_URI} !^/catalog [NC] 
RewriteRule ^(.*)$ /catalog/$1 [L] 

#Now, rewrite to HTTPS: 
#RewriteCond %{HTTPS} off 
#RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

単一リダイレクトにこれらを結合する方法はありますか?または、リンク先ページをリダイレクトしてもそれほど悪くはありませんか?

答えて

1

あなたの第一及び第三リダイレクトルールを1つに組み合わせることが可能と書き換えルールの前に保持する必要があります。

RewriteEngine On 

# add www and turn on https in same rule 
RewriteCond %{HTTP_HOST} !^www\. [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://www.%1%{REQUEST_URI} [R=301,L,NE] 

#Then, rewrite to /catalog 
RewriteCond %{REQUEST_URI} !^/catalog/ [NC] 
RewriteRule ^(.*)$ /catalog/$1 [L] 

は、この変更をテストする前にブラウザのキャッシュをクリアすることを確認します。

+0

@ArtcoInc:これはうまくいきましたか? – anubhava

+0

迅速な返信をありがとう!私はこれをテストする機会を得ると、あなたに知らせます。 – ArtcoInc

関連する問題