You are not logged in.

  • Login

1

Thursday, August 20th 2009, 10:12am

CMS + SSL + htaccess ?

Moin Moin,

Ich habe hier folgendes Szenario was zu lösen ist.

Es sind zwei Unterschiedliche CMS Varianten im einsatz:

Nuke Platinum und das pragmaMx (auf Nuke basierend).

In beiden CMS's wird ein osc Modul verwendet, soweit so gut es funktioniert soweit.
Nur kommt jetzt SSL ins Spiel werden nur noch beim Nuke die Garfiken in SSL Modus angezeigt.
Beim pragma nicht. Nun hab ich mir mal die Pfadangaben angeschaut, woran es nicht liegen kann.

Ich hab noch mal genauer hingeschaut und siehe da:

https://ssl-id.de/www.alternative-comput…ics-hdlt_01.gif (Nuke)

http://ssl-id.net/pragmamx-demo.alternat…lag-turkish.png

Beide Seiten werden mit https:// angesprochen und liegen auf dem selben Server / Space (Str**o).
Das pragma CMS arbeitet mit mod_rewrite, ist aber egal ob aktiv oder nicht es kommt immer das selbe.
Wie kann ich es nun ermöglichen, das die Grafiken auch über die SSL Adrersse gelesen und angezeigt werden?

Habe mal auf der Apache Seite mit das mit dem mod_rewrite angeschaut und bin hierhellhöhrig geworden:

RewriteCond Directive

Nun würde ich das Grafikproblem gerne mit der htaccess lösen, liege ich da richtig oder bin ich gar auf dem Holzpfad??
Für Lösungsvorschläge wäre ich dankbar. Ich muß dazu erwähnen, das mod_rewrite neuland für mich ist und es das erste mal ist das ich überhaupt mit htaccess arbeite :(


Mit freundlichen Grüßen

Peter

2

Thursday, August 20th 2009, 3:07pm

Moin,

Bin mal einwenig schlauer geworden:

habe in meiner baseconfig diese Zeile gefunden und schenkte ihr meine ganze aufmerksamkeit:


$server = $_SERVER['HTTP_HOST'];
$proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off' || strtolower($_SERVER['HTTPS']) == 'on'))? 'https://' : 'http://'; (Originalzeile)

die hab ich mal zum Testen gegen diese ausgetauscht:


$server = $_SERVER['HTTP_HOST'];
$proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off' || strtolower($_SERVER['HTTPS']) == 'on'))? 'http://' : 'https://';

Nun komme ich mit https://ssl-id.de/meine-domain.tld zum gewünschten ergebniss, nur wenn mann jetzt http://www.meine-domain.tld eingibt versucht der Browser mit der korrekten Domain über https alles Scripte, Grafiken und Styles zu laden.

Gibt es jetzt eine möglichkeit zu sagen wenn http eigegen wird dann soll über http geladen werden, wenn https dann über https ??

Vielen Dank im Vorraus

MfG

Peter

3

Thursday, August 20th 2009, 3:58pm

Ich noch mal,
Wenn ich jetzt das Falsche Forum erwischt habe bitte verschieben.

So in etwa hab ich mir das gedacht:

$server = $_SERVER['HTTP_HOST']{
if($proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')))? 'https://' : 'http://';
}else{
$proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'on'))? 'http://' : 'https://';
}

Würde das so gehen ?

MfG

Peter

NMachtrag: Nein geht nicht, wirft mir ein Parse Error aus

This post has been edited 1 times, last edit by "BdMdesigN" (Aug 20th 2009, 4:09pm)


4

Thursday, August 20th 2009, 7:51pm

hallo!

ich habe den Code von phpnuke nicht vor mir, aber wenn deine URL auf beiden Domains erreichbar sein soll und du alle Pfade umschreiben möchtest, reicht es nicht nur das Protokoll zu ändern.
Gibt man denn auch irgendwo den hostnamen bzw den Pfad an?

Ich habe es mal beispielhaft umgesetzt:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
$isHTTPS = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off';
 
if($isHTTPS) {
	// run via https://ssl-id.de/meine-domain.tld
	$proto = 'https';
	$url = 'ssl-id.de';
	$path = '/meine-domain.tld';
} else {
	// run via http://www.meine-domain.tld
	$proto = 'http';
	$domain = 'www.meine-domain.tld';
	$path = '/';
}


Um die Verwirrung mit .htaccess/mod_rewrite zu klären:
Nein, mod_rewrite hilft dir in diesem Fall nicht.

Mit mod_rewrite kannst du etwas unter einem Pfad erreichbar machen, der eigentlich gar nicht existiert.
Du möchtest aber den Inhalt deiner Seite modifizieren - so dass andere Pfade zurückgegeben werden.

5

Thursday, August 20th 2009, 8:22pm

Hallo dOnut,

Das mit der htaccess und mod_rewrite hab ich schon gemerkt. ;)

Nun komme ich so zum teilerfolg:

$server = $_SERVER['HTTP_HOST'];
if
(($proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')))? 'https://' : 'http://');
else
($proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'on'))? 'http://' : 'https://');

Nur tritt jetzt das Problem der doppelten URL vergabe auf:

http://pragmamx-demo.alternative-computi…lag-turkish.png (http)

https://ssl-id.net/pragmamx-demo.alterna…lag-turkish.png (https)

http und https werden jetzt korrekt angesprochen, nur halt mit doppelter URL.

Werde mal Dein Code versuchen.

Um Deine Frage zubeantworten:

hallo!

ich habe den Code von phpnuke nicht vor mir, aber wenn deine URL auf beiden Domains erreichbar sein soll und du alle Pfade umschreiben möchtest, reicht es nicht nur das Protokoll zu ändern.
Gibt man denn auch irgendwo den hostnamen bzw den Pfad an?


Nein habe nur den ersten Code aus meinen zweiten Post so modifiziert

MfG

Peter

6

Thursday, August 20th 2009, 8:46pm

Nur tritt jetzt das Problem der doppelten URL vergabe auf:
http://pragmamx-demo.alternative-computi…lag-turkish.png (http)
https://ssl-id.net/pragmamx-demo.alterna…lag-turkish.png (https)

http und https werden jetzt korrekt angesprochen, nur halt mit doppelter URL.


Mit doppelter URL? Wie meinst du das? Wenn du die HTTPS Quelle eintippst, werden die Bilder auch von HTTPS geladen?
Wenn du gar kein HTTP mehr anbieten willst (bei einem shop durchaus verständlich) brauchst du doch nur eine HTTP Weiterleitung zu aktivieren, oder?

Also immer wenn man www.domain.tld eintippt, wird man weitergeleitet zu https://ssl-id.net/www.domain.tld

7

Thursday, August 20th 2009, 8:50pm

Hallo d0nut,

Ich häng Dir Datei mal mit an, das es ja nur ein Teil des Codes ist was ich verändert habe.

MfG

Peter
BdMdesigN has attached the following file:
  • baseconfig.zip (3.7 kB - 15 times downloaded - latest: Dec 27th 2011, 12:51pm)

8

Thursday, August 20th 2009, 8:53pm

erläutere mir besser nochmal das Problem ;)
Also eine Weiterleitung (doch über mod_rewrite) wäre ganz einfach:

Siehe Posting: .htaccess Weiterleitung von Subdomain zu ganz anderer Domain

Source code

1
2
RewriteCond %{HTTP_HOST} !^www\.zieldomain\.de$
RewriteRule ^(.*)$ http://www.zieldomain.de/$1 [L,R=301]

9

Thursday, August 20th 2009, 9:00pm

Nur tritt jetzt das Problem der doppelten URL vergabe auf:
http://pragmamx-demo.alternative-computi…lag-turkish.png (http)
https://ssl-id.net/pragmamx-demo.alterna…lag-turkish.png (https)

http und https werden jetzt korrekt angesprochen, nur halt mit doppelter URL.


Mit doppelter URL? Wie meinst du das? Wenn du die HTTPS Quelle eintippst, werden die Bilder auch von HTTPS geladen?
Wenn du gar kein HTTP mehr anbieten willst (bei einem shop durchaus verständlich) brauchst du doch nur eine HTTP Weiterleitung zu aktivieren, oder?

Also immer wenn man www.domain.tld eintippt, wird man weitergeleitet zu https://ssl-id.net/www.domain.tld


Ja doppelte URL ich tippe http://pragmamx-demo.alternative-computing.com/, die Seite wird geladen. Soweit so gut nun werden die Grafiken und Styles nicht berücksichtig da sie angeblich dort liegen:

http://pragmamx-demo.alternative-computi…ing.com/images/..... auf https das gleiche Spiel die in der Adresszeile stehende URL wird mit an den Bilder/Styles Pfad mit angefügt.

Warum die Seite mit und ohne SSL gehen soll?

Wenn mann sich jetzt einloggen will soll das Verschlüsselt vonstatten gehen, nur werden dann nicht die korrekten Grafik/Styles Pfade mit übernommen sondern aus https wird http und umgekehrt.
Sprich wenn ich jetzt SSL statisch einsetze (dauerhaft) hab ich eine zufrieden stellende lösung gefunden, die mit ssl-id.de/.net funktioniert nur das dynamische will nicht.

Mit der Nuke-Platinum Seite ist alles ok. Grafiken und Styles werden sowoll als auch angezeigt (http/https).

Danke für Deine Gedult ;)

MfG

Peter

10

Thursday, August 20th 2009, 9:13pm

ich schätze da musst du noch ein bisschen rumexperimentieren.
Der Bildpfad wird hier gesetzt:

PHP Quellcode

1
2
/* Ordner mit den Bildchen */
    define('PMX_IMAGE_DIR', PMX_REAL_BASE_DIR . DS . 'images');


Generell ist das System nicht dazu gedacht unter zwei URLs betrieben zu werden - daher würde ich der Einfachheit halber alles über HTTPS laufen lassen.

11

Thursday, August 20th 2009, 9:30pm

Ok

erläutere mir besser nochmal das Problem ;)
Also eine Weiterleitung (doch über mod_rewrite) wäre ganz einfach:

Siehe Posting: .htaccess Weiterleitung von Subdomain zu ganz anderer Domain

Source code

1
2
RewriteCond %{HTTP_HOST} !^www\.zieldomain\.de$
RewriteRule ^(.*)$ http://www.zieldomain.de/$1 [L,R=301]


Wenn ich jetzt mit der Original Zeile:

$server = $_SERVER['HTTP_HOST'];
$proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off' || strtolower($_SERVER['HTTPS']) == 'on'))? 'https://' : 'http://'; (Originalzeile)

Versuche eine https Verbindung aufzubauen, geht es soweit das der Inhalt (Text aus der DB) ausgelesen und angezeigt wird.
Die Grafiken und Syles des templates nicht, die werden mit http aufgerufen und somit nicht gefunden.

Ändere ich jetzt die Zeile in:

$server = $_SERVER['HTTP_HOST'];
$proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off' || strtolower($_SERVER['HTTPS']) == 'on'))? 'http://' : 'https://';

Verhält sich das genau anders herum, Aufruf via https (Statisch) funtioniert und die Grafiken und Styles der template werden angezeigt.

Nun verbindet man via http, Text wird geladen und angezeigt nur die Grafiken & Styles werrden mit https geladen sonstige Pfadangaben sind IO.

Nun habe ich es so Modifiziert das, wenn ich jetzt mit https aufrufe die Grafikverweise mit https aufgerufen werden nur halt mit //ssl-id.de/meinedomain.tld/ssl-id.de/meinedomain.tld/

und bei http verhält sich das genau so nur halt //meinedomain.tld/meinedomain.tld/ da ist jeweils ein ssl-id.de/meinedomain.tld und ein meinedomain.tld zuviel im Grafikverweis.

Da ich aber gerne SSL Dynamisch einsetzen möchte:

Kunde ruft über http auf, wenn er sich in den Kundenbereich einloggen will soll er auf https verwiesen werden, das soll auch so für den Warenkorb, Kasse und den Adminbereich so sein.
Nur Dynamisch klappt es halt mit den Grafiken dann nicht.

Die Statische lösung geht ja soweit, kann ja bei Strato ein redirect einrichten hhttp://meineseite.tld --> https://ssl-id.de/meineseite.tld.

Da die User, die sehnlichst auf den Port warten es dynamisch wollen , sollte beides gehen.

12

Thursday, August 20th 2009, 10:17pm

Sorry aber ich noch mal,

So sollte es sein:

http & https

Mal sehen vileicht finde ich ja einen Weg das das ergebnis so ausschaut. ;)

Vielen Dank denoch d0nut

MfG

Peter

13

Saturday, August 22nd 2009, 11:11am


Nun habe ich es so Modifiziert das, wenn ich jetzt mit https aufrufe die Grafikverweise mit https aufgerufen werden nur halt mit //ssl-id.de/meinedomain.tld/ssl-id.de/meinedomain.tld/


Wo? An welcher Stelle hast du den Pfad angegeben? An der musst du die Ausnahmeregelung einfügen.. isHTTPS

14

Saturday, August 22nd 2009, 6:29pm


Nun habe ich es so Modifiziert das, wenn ich jetzt mit https aufrufe die Grafikverweise mit https aufgerufen werden nur halt mit //ssl-id.de/meinedomain.tld/ssl-id.de/meinedomain.tld/


Wo? An welcher Stelle hast du den Pfad angegeben? An der musst du die Ausnahmeregelung einfügen.. isHTTPS


Moin d0nut,

Nirgends, habe die Pfade so gelessen wie in der angehängten Datei.
Habe nichts hinzugefügt, außer die Zeile 235 + 236 gegen die Unten ausgetauscht.

Mit diesen Code passiert mir das:

$server = $_SERVER['HTTP_HOST'];
if
(($proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')))? 'https://' : 'http://');
else
($proto = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'on'))? 'http://' : 'https://');

Mit allen anderen ist es noch schlimmer, in etwa so: https://ssl-xx.xx/meine-domain.tld/https…ain.tld/images/...... (dies Verhält sich auch bei deinen Beispielcode so)

Nur mit dem Code nicht da halt unter https:

https://ssl-id.de/meinedomain.tld/ssl-id…ain.tld/images/....

Http:

http://meine-domain.tld/meine-domain.tld/images/....

Mit einzel zertifikaten, sprich: https//meione-domain.tld und http://meine-domain.tld wurde mir Berichtet das alles IO ist. Also liegt das problem an den Shared Certificates.

das sollte aber auch lösbar sein, hoffe ich doch.

Nochmals DAnke für Deine geduldt.

MfG

Peter

Similar threads

Social bookmarks