Ich habe einen neuen virtuellen Host für eine neue Site auf meinem Server eingerichtet, aber er verhält sich merkwürdig, obwohl er genau dieselben Einstellungen wie meine ursprüngliche Site hat.
Ich möchte, dass alle Anfragen auf HTTPS umgeleitet werden, ganz einfach. Auf meiner Hauptsite (der funktionierenden) habe ich dies in der VirtualHost
Konfiguration angegeben und in .htaccess
habe ich eine zusätzliche Regel angegeben, um kurze URLs zuzulassen. Das Problem auf der nicht funktionierenden Site besteht insbesondere darin, dass, wenn ich versuche, zu zu gehen example.com/url
, die Umleitung zu geht https://example.comurl
und das Notwendige /
aus der URL entfernt.
Ich habe die genaue Konfiguration von der funktionierenden Site in die neue Datei kopiert, VirtualHost
daher bin ich mir nicht sicher, warum es auf der neuen nicht funktioniert. Meine DNS-Einträge für beide Sites verwenden alle A-Einträge, um darauf zu verweisen, es passieren keine Umleitungen oder ähnliches auf DNS-Ebene. Ich habe versucht , am Ende der Zeilen im folgenden Code ein „“ einzufügen, aber das Problem wurde nicht behoben. Der Server ist Ubuntu 14.04 und Apache ist Version 2.4.7. Beide Sites sind separate Domänennamen mit separaten verwendeten Dateien, aber sie werden auf demselben Server mit derselben IP-Adresse gehostet. Wie kann ich dieses Problem beheben?.htaccess
/
Redirect
.conf
Der entsprechende Code im 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, dies ist 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 VirtualHost
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>
Antwort1
So leiten Sie zu HTTPS weiter:
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>
NOTIZ:Sie müssen ein SSL-Zertifikat erstellen... aber es gibttolles Tutorialdafür!