[gelöst] mod_rewrite http->https, ausnahme formulieren

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

[gelöst] mod_rewrite http->https, ausnahme formulieren

Beitrag von manes » 21.04.2011 00:37:14

hallo forum,
auf einem apache2 habe ich mod_rewrite aktiviert, mir ein selfsigned zertifikat erstellt und in der apache2.conf die zwangsweise umstellung von http auf https eingetragen:

Code: Alles auswählen

<VirtualHost *:80>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
funktioniert, und natürlich kommen die browserwarnungen bezüglich des zertifikates. ein verzeichnis, nennen wir es start, soll aber unter http erreichbar bleiben.
ich habe es so versucht:

Code: Alles auswählen

<VirtualHost *:80>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/start
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
scheint mir zumindest leserlich, aber ehrlich gesagt, verstehe ich die syntax nicht wirklich, und geklaut ist es auch von hier. funktioniert bloß nicht. weiterhin werden alle verzeichnisse auf https umgebogen. der apache wurde neu gestartet. was mache ich da denn falsch?

grüße
manes
Zuletzt geändert von manes am 21.04.2011 14:55:00, insgesamt 1-mal geändert.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: mod_rewrite http->https, ausnahme formulieren

Beitrag von syssi » 21.04.2011 12:38:44

Bei mir sieht es so aus:

Code: Alles auswählen

<VirtualHost *:80>
    DocumentRoot /var/www/nossl
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/android/
    RewriteCond %{REQUEST_URI} !^/icons/
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R=301,L]
    ServerSignature Off
</VirtualHost>
Die Ordner "/android/" und der Standard-Ordner "/icons/" ist ohne SSL erreichbar. Fuer alle anderen Adressen wird man auf https redirected. Wo genau hakt es bei dir?

Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

Re: mod_rewrite http->https, ausnahme formulieren

Beitrag von manes » 21.04.2011 14:22:34

danke fur deine hilfe, syssi!

mit

Code: Alles auswählen

<VirtualHost *:80>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/start/
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>
ist das verzeichnis start zu erreichen, wenn ich es explizit per https aufrufe, über http aber kommt die meldung »The requested URL /start/ was not found on this server.«
seltsam.
eine .htaccess, die da reinfunken könnte, habe ich nicht. wo es hakt, wüßte ich auch gern!

die apache2.conf ist weitgehend jungfräulich und sieht jetzt gerade so aus:

Code: Alles auswählen

<Directory /var/www/>
   Options -Indexes
</Directory>

<VirtualHost *:80>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/start/
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>

(ein paar passwortgeschützte verzeichnisse:)
<Directory "/var/www/foo">
AuthType Digest
AuthName "authentification required"
AuthDigestProvider file
AuthUserFile /etc/apache2/passwd
Require user user1
</Directory>

LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
Include ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
Include conf.d/
Include sites-enabled/
(grade noch so an nopaste vorbeigekommen… :) )
grüße
manes

charno
Beiträge: 636
Registriert: 28.06.2004 20:24:34

Re: mod_rewrite http->https, ausnahme formulieren

Beitrag von charno » 21.04.2011 14:43:53

manes hat geschrieben: Hallo,

Code: Alles auswählen

<VirtualHost *:80>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/start/
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>
ist das verzeichnis start zu erreichen, wenn ich es explizit per https aufrufe, über http aber kommt die meldung »The requested URL /start/ was not found on this server.«
seltsam.
eine .htaccess, die da reinfunken könnte, habe ich nicht. wo es hakt, wüßte ich auch gern!
Du hast kein DocumentRoot angegeben. Dadurch macht dieser VirtualHost eigentlich nichts ausser der Umleitung auf https. Wenn du die Daten noch per http erreichen willst musst du denselben DocumentRoot beim http-virtualhost angeben, wie er im Moment im https-DocumentRoot angegeben ist.

lg
"Wer sich nicht bewegt, spürt seine Fesseln nicht." - Rosa Luxemburg

Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

Re: mod_rewrite http->https, ausnahme formulieren

Beitrag von manes » 21.04.2011 14:54:40

danke dafür!
ich liebe euch!
manes

ps: hab mir jetzt mal ein buch bestellt, das hier, aber nicht dort (wikileaks, anyone?).

Antworten