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>
Author: vaindil, 2015-05-15

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!!!!

 4
Author: Ricain,
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