Ich muss meinen VirtualHost unter Apache so einrichten, dass er sowohl unter http als auch unter https (unter Verwendung von Standardports) ausgeführt wird.
Wenn ich die SSL-Engine aktiviere (siehe unten), wird an Port 80 eine Fehlermeldung angezeigt.
Der Grund dafür ist, dass Teile der Website SSL sein müssen, andere Teile jedoch nicht. Wie kann ich beide http + https auf der Site bedienen?
Hier ist meine virtuelle Hostdatei ....
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName mysite.co.uk
DocumentRoot /var/www/mysite/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mysite/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
#SSL STUFF...
SSLEngine on
SSLCertificateFile /etc/apache2/crts/mysite.crt
SSLCertificateKeyFile /etc/apache2/crts/mysite.key
SSLCertificateChainFile /etc/apache2/crts/DigiCertCA.crt
</VirtualHost>
quelle
UseCanonicalPhysicalPort Off
. Wenn Sie diese Option aktivieren, wird anscheinend der tatsächliche Port verwendet. (Lustigerweise musste ich dasSSLEngine On
in meinem doppelt genutzten vhost weglassen und bekam standardmäßig Port 80.)%{HTTPS}
wird auch korrekt eingestellt, ist aber%{REQUEST_SCHEME}
nicht (immerhttp
). Ich fühle mich jedoch dumm, eine Feature-Anfrage für eineUseCanonicalRequestScheme
Direktive einzureichen.