Richtige Apache-Umleitung von http zu https
Ich habe einen neuen virtuellen Host für eine neue Site auf meinem Server eingerichtet, aber er verhält sich seltsam, obwohl er genau die gleichen Einstellungen wie meine ursprüngliche Site hat.
Ich möchte, dass alle Anfragen einfach auf HTTPS umgeleitet werden. Auf meiner Hauptseite (der funktionierenden) habe ich dies in der Konfiguration VirtualHost
und in .htaccess
eine zusätzliche Regel angegeben, um kurze URLs zuzulassen. Insbesondere ist das Problem auf der nicht funktionierenden Site, dass, wenn ich versuche, zu example.com/url
zu gehen, die Weiterleitung zu https://example.comurl
und entfernt das notwendige /
aus der URL.
Ich habe die genaue Konfiguration von der Arbeitsstelle in die neue Datei VirtualHost
und .htaccess
kopiert, daher bin ich mir nicht sicher, warum sie auf der neuen nicht funktioniert. Meine DNS-Einträge für beide Sites verwenden alle Datensätze, um darauf zu verweisen, es passieren keine Weiterleitungen oder irgendetwas auf DNS-Ebene. Ich habe versucht, ein /
am Ende der Redirect
Zeilen im folgenden Code einzufügen, aber das Problem wurde nicht behoben. Der Server ist Ubuntu 14.04 und Apache ist Version 2.4.7. Beide Seiten sind separate Domänennamen mit separaten .conf
Dateien verwendet, aber sie sind auf dem gleichen Server mit der gleichen IP-Adresse gehostet. Wie kann ich dieses problem beheben?
Der entsprechende Code in der VirtualHost
:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com
</VirtualHost>
Und in .htaccess
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
Falls es hilft / wichtig ist, ist dies die SSL-Konfiguration in meiner VirtualHost-Datei, obwohl sie ganz am Anfang der Datei außerhalb aller anderen Anweisungen steht:
SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdo$
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
Und dies ist die Konfiguration speziell für die VirtualHost
für die site:
<VirtualHost *:443>
ServerName example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example
ErrorLog ${APACHE_LOG_DIR}/errorexample.log
Options -Indexes
SSLEngine on
SSLCertificateFile /etc/ssl/example/examplecert.crt
SSLCertificateKeyFile /etc/ssl/example/examplekey.key
SSLCertificateChainFile /etc/ssl/chain/class1.pem
</VirtualHost>
1 answers
Um zu HTTPS umzuleiten:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Sie benötigen jedoch einen virtuellen Host für SSL:
NameVirtualHost *:443
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
HINWEIS: Sie müssen ein SSL-Zertifikat erstellen... aber es gibt tolles tutorial dafür!!!!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-05-15 19:23:55