2016-11-28 3 views
1

Ich habe derzeit zwei Rewrite-Regeln in meiner .htaccess Datei, und jetzt müssen Sie eine weitere hinzufügen. Allerdings ist GTMetrix bereits geben Sie mir eine F Bewertung hier besagt: Vermeiden Zielseite umleitet.htaccess Rewrite Konsolidierung

  1. Die erste Umleitung fügt die www. an die URL.

  2. Die zweite Weiterleitung fügt der URL ein Unterverzeichnis hinzu.

  3. Die dritte (vorgeschlagene) Weiterleitung fügt die https an den Anfang der 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] 

Gibt es eine Möglichkeit, diese in einer einzigen Umleitung zu kombinieren? Oder ist die Umleitung der Zielseite nicht so schlimm?

Antwort

1

Ihre 1. und 3. Umadressierungsregel können zu einem zusammengefasst werden und sollten vor der Rewrite-Regel gehalten werden:

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] 

Stellen Sie sicher, dass Ihr Browser-Cache löschen, bevor diese Änderung zu testen.

+0

@ArtcoInc: Hat das geklappt? – anubhava

+0

Vielen Dank für die schnelle Antwort! Ich werde dich wissen lassen, wenn ich eine Chance habe, das zu testen. – ArtcoInc