2016-08-04 21 views
1

ich ein Projekt mit einer riesigen .htaccess Datei geerbt viel Umschreiben von „.html“ Urls tun Dateien wie diese PHP:Rewrite spezifische Regel (html URL zu php, mit https)

RewriteRule ^login\.html$ login.php 

Ich weiß, Es gibt viele ähnliche Fragen rund um die Website, aber keine von ihnen funktionierte in meinem Fall, die meisten von ihnen sind nur http -> https Umschreibungen/Umleitungen.

Ich will nur nur mit folgendem Verhalten, dass bestimmte Regel ändern:

1.- http://www.example.com/login.html -> sollte gehen ->https://www.example.com/login.html

2.- https://www.example.com/login.html -> sollte map zu login.php Datei (wie in der Neufassung oben).

htaccess Lösung bevorzugt, aber alle anderen würden auch geschätzt werden.

Antwort

1
RewriteCond %{HTTPS} off 
RewriteRule ^login\.html$ https://www.example.com/login.html [R,L] 

RewriteCond %{HTTPS} on 
RewriteRule ^login\.html$ login.php 

Überprüfen Sie auch in Ihrem in Conf-Dateien, dass DocumentRoot das gleiche für *:80 und :443 Virtual ist, und dass beide AllowOverride All

(In der Regel sollten Sie nur Dateien verwenden .htaccess, wenn Sie habe keinen Zugriff auf die Hauptserver-Konfigurationsdatei.)

+1

Ich habe, schlagen Sie eine bessere Lösung vor? Es gibt keine Möglichkeit, den Domain-Namen hart zu codieren. % {HTTP_HOST} vielleicht? – sh4

+1

Ich denke, das plus HTTP_HOST wird funktionieren. – Gogol

+0

Ja, Sie können '% {HTTP_HOST}' –