wake-up-neo.net

Automatische Umleitung von http nach https mit .htaccess-Authentifizierung beim virtuellen Hosting

Hallo, ich habe Virtual Host auf Apache mit . Htaccess Authentifizierung mit SSL konfiguriert. Es funktioniert einwandfrei, wenn ich url https://www.example.com:9004/test.php eingetippt habe, aber wenn ich http://www.example.com:9004/test.php eingetippt habe, wird folgender Fehler angezeigt:

Bad Request

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
Hint: https://www.example.com/  

Meine httpd.conf Datei sieht so aus:

 Listen 9004
<VirtualHost *:9004>
    ServerAdmin [email protected]
    DocumentRoot /mnt/work/httpd
    <Directory "/mnt/work/httpd">
    Options FollowSymLinks
     AllowOverride AuthConfig
    </Directory>
  SSLEngine On
  SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
  SSLCertificateKeyFile /mnt/work/httpd/www.example.com.key
  SSLCertificateFile /mnt/work/httpd/www.example.com.crt
#RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.example.com:9006%{REQUEST_URI}
    ServerName www.example.com
    ErrorLog "/mnt/work/log/error_log"
    CustomLog "/mnt/work/log/access_log" combined
</VirtualHost>

Und meine / etc/httpd/conf.d/ssl.conf Datei ist:

LoadModule ssl_module modules/mod_ssl.so

#
# When we also provide SSL we have to listen to the
# the HTTPS port in addition.
#
Listen 9006

Und meine . Htaccess Datei ist:

AuthType Digest
AuthName "Protected"
AuthDigestProvider file
AuthGroupFile /dev/null
AuthUserFile /mnt/work/httpd/digest_auth
Require user johan

Was soll ich tun, wenn ich http:/www.example.com:9004/test.php drücke, wird automatisch zu https://www.example.com:9004/test.php umgeleitet.

3
Akki
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]

Sollte den Trick machen.

3

Anscheinend möchten Sie 9004 für https; 9006 für http; Sie sollten die http-Verbindung auf dem 9004-Port auf die https-Verbindung auf demselben 9004-Port umleiten.

Ihre Konfiguration leitet jedoch http://example.com:9004 zu https://example.com:9006 weiter, was nicht viel Sinn macht, da der 9006-Port für http ist. Ersetzen Sie einfach 9006 durch 9004 in Ihrer RewriteRule.

Einige zusätzliche Informationen zur URL-Weiterleitung: http://wiki.Apache.org/httpd/RedirectSSL

0
Thava