2016-11-28 48 views
1

我目前在我的.htaccess文件中有兩個重寫規則,現在需要添加另一個。然而,GTMetrix已經給我一個F等級在這裏指出:避免登陸頁面重定向.htaccess重寫合併

  1. 第一重定向添加www.的URL。

  2. 第二次重定向將一個子目錄添加到URL中。

  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

你的第一個和第三個重定向規則可以組合成一個重寫規則之前,應保持:

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