2016-04-20 8 views
0

In meiner .htaccess Datei habe ich bereits einige Umschreibungsbedingungen und Regeln, und es funktioniert normal.Mehrere Rewrite Regeln und Bedingungen in htaccess Datei

Jetzt muss ich "http zu https Redirect" zu meiner Htaccess-Datei hinzufügen.

Hier ist meine alte .htaccess-Datei:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L] 

RewriteRule ^([a-z0-9_-]+)$ pages/$1.php [L] 
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)$ pages/$1/$2.php [L] 
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+)$ pages/$1/$2/$3.php [L] 

ich unten Code zu hinzufügen versucht die Datei aber es tut richtig funktionieren. Zum Beispiel wenn ich die URL direkt zum Browser schreibe (nur mit www). Aber wenn ich meine Backlinks oder Google Suchergebnislinks klicke, funktioniert es nicht.

RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] 

Wo irre ich mich? Wo sollte ich den Code setzen? Jede Hilfe wäre großartig. Vielen Dank.

+0

Bitte definieren ** es funktioniert nicht richtig ** – starkeen

+0

Ich bearbeitet meine que stion. – feyyaz

+0

Erhalten Sie einen 404 oder ssl Fehler? – starkeen

Antwort

0

Ihre htaccess könnte wie folgt aussehen:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.yoursite\.com [NC] 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L] 

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L] 

RewriteRule ^([a-z0-9_-]+)$ pages/$1.php [L] 
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)$ pages/$1/$2.php [L] 
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+)$ pages/$1/$2/$3.php [L] 

Zumindest funktioniert es für mich, in meine eigene Implementierung

+0

Ich habe "ERR_TOO_MANY_REDIRECTS" Fehler von Chrome bekommen. es funktioniert nicht. – feyyaz

+0

Vielleicht hilft Ihnen das weiter: http://htaccess.mwl.be/ –

+0

Vielen Dank, ich benutze dieses Tool bereits. Es gibt mir keinen Fehler, aber es funktioniert nicht auf dem Server. – feyyaz

0

können Sie die folgende .htaccess verwenden:

RewriteEngine on 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.+)/?$ $1.php [L] 

löschen Ihre Browser-Cache vor dem Testen dieser

+0

URL wurde in https geändert, aber es wird ein Fehler "ERR_TOO_MANY_REDIRECTS" in Chrome ausgelöst. Seite wird nicht geöffnet. – feyyaz

+0

Wenn ich den Netzwerkbereich von Entwickler-Tools anschaue, sehe ich 21 301 umleiten zu derselben URL. Deshalb habe ich zu viele Umleitungsfehler bekommen. – feyyaz

+0

Haben Sie andere Regeln? – starkeen