Ich habe einen neuen virtuellen Host für eine neue Site auf meinem Server eingerichtet, aber das Verhalten ist seltsam, obwohl die Einstellungen exakt mit denen meiner ursprünglichen Site übereinstimmen.
Ich möchte, dass alle Anfragen einfach an HTTPS weitergeleitet werden. Auf meiner Haupt-Site (der funktionierenden) habe ich dies in der VirtualHost
Konfiguration angegeben und in habe .htaccess
ich eine zusätzliche Regel angegeben, um kurze URLs zuzulassen. Insbesondere besteht das Problem auf der nicht funktionierenden Site darin, dass beim Versuch, zu zu wechseln example.com/url
, die Umleitung zu https://example.comurl
der erforderlichen /
URL wechselt und diese entfernt .
Ich habe die exakte Konfiguration von der Arbeitsseite in die neue VirtualHost
und .htaccess
Datei kopiert, daher bin ich mir nicht sicher, warum sie auf der neuen nicht funktioniert. Meine DNS-Einträge für beide Sites verwenden alle A-Einträge, um darauf zu verweisen. Auf DNS-Ebene finden keine Weiterleitungen oder andere Aktionen statt. Ich habe versucht, ein /
am Ende der Redirect
Zeilen in den Code unten zu setzen, aber das Problem wurde nicht behoben. Der Server ist Ubuntu 14.04 und Apache ist Version 2.4.7. Bei beiden Sites handelt es sich um separate Domänennamen, für die separate .conf
Dateien verwendet werden. Sie werden jedoch auf demselben Server mit derselben 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 außerhalb aller anderen Anweisungen ganz am Anfang der Datei 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>
quelle
Redirect permanent / https://example.com/
/
am Ende desRedirect
Befehls zu setzen, aber das hat das Problem nicht behoben.Antworten:
So leiten Sie zu HTTPS um:
Sie benötigen jedoch einen virtuellen Host für ssl:
HINWEIS: Sie müssen ein SSL-Zertifikat erstellen ... aber es gibt ein großartiges Tutorial dafür!
quelle
Redirect
stattdessen meine Zeilen in Ihren ersten Codeblock geändert und alles funktioniert jetzt ordnungsgemäß. Ich danke dir sehr!