CMS + SSL + htaccess ?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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:

    ssl-id.de/www.alternative-comp…header/Basics-hdlt_01.gif (Nuke)

    ssl-id.net/pragmamx-demo.alter…language/flag-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
  • 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 ssl-id.de/meine-domain.tld zum gewünschten ergebniss, nur wenn mann jetzt 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
  • 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

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von BdMdesigN ()

  • 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:

    Quellcode

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


    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.
  • 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:

    pragmamx-demo.alternative-comp…language/flag-turkish.png (http)

    ssl-id.net/pragmamx-demo.alter…language/flag-turkish.png (https)

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

    Werde mal Dein Code versuchen.

    Um Deine Frage zubeantworten:

    d0nut schrieb:

    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
  • BdMdesigN schrieb:

    Nur tritt jetzt das Problem der doppelten URL vergabe auf:
    pragmamx-demo.alternative-comp…language/flag-turkish.png (http)
    ssl-id.net/pragmamx-demo.alter…language/flag-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 domain.tld eintippt, wird man weitergeleitet zu ssl-id.net/www.domain.tld
  • d0nut schrieb:

    BdMdesigN schrieb:

    Nur tritt jetzt das Problem der doppelten URL vergabe auf:
    pragmamx-demo.alternative-comp…language/flag-turkish.png (http)
    ssl-id.net/pragmamx-demo.alter…language/flag-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 domain.tld eintippt, wird man weitergeleitet zu ssl-id.net/www.domain.tld


    Ja doppelte URL ich tippe 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:

    pragmamx-demo.alternative-comp…ive-computing.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
  • ich schätze da musst du noch ein bisschen rumexperimentieren.
    Der Bildpfad wird hier gesetzt:

    Quellcode

    1. /* Ordner mit den Bildchen */
    2. 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.
  • Ok

    d0nut schrieb:

    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

    Quellcode

    1. RewriteCond %{HTTP_HOST} !^www\.zieldomain\.de$
    2. 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 --> ssl-id.de/meineseite.tld.

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

    BdMdesigN schrieb:


    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: ssl-xx.xx/meine-domain.tld/htt…/meine-domain.tld/images/...... (dies Verhält sich auch bei deinen Beispielcode so)

    Nur mit dem Code nicht da halt unter https:

    ssl-id.de/meinedomain.tld/ssl-id.de/meinedomain.tld/images/....

    Http:

    meine-domain.tld/meine-domain.tld/images/....

    Mit einzel zertifikaten, sprich: https//meione-domain.tld und 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