SSL | http zu https umleiten

Hallo,

wie kann ich alle [I]http[/I]-Seiten auf [I]http[B]s[/B][/I] umleiten?

Hintergrund:
Gerade habe ich das SSL-Zertifikat für unseren Shop installiert. Die URL lautet jetzt
[I]http[B]s[/B]://www.example.com[/I] (nur ein Beispiel)

Aber bestimmt gibt nicht jeder Besucher das “[I]s[/I]” mit in die Browserzeile ein (meistens gibt man ja nur Domainname und -endung ein).

Mein Problem:
Jetzt sind alle Shopseiten quasi doppelt aufrufbar/vorhanden:
[I]http://www.example.com[/I] und [I]http[B]s[/B]://www.example.com[/I]
(natürlich habe ich alle Einträge in der config.inc.php gemacht, so dass alle Shop-Links zur [I]http[B]s[/B][/I] führen, aber trotzdem sind noch beide Versionen im Netz abrufbar…)
Dieser “double content” wird von Google™ & Co. aber mit einer schlechteren Suchmaschinenplatzierung abgestraft.

Lösungsansätze:
[ul]
[li]HTML refresh-tag: indiskutabel[/li][li]mod_rewrite: fällt für mich leider aus, da ich nicht sauber in die OXID-Programmierung eingreifen kann[/li][li].htaccess: jemand 'ne Idee, die den Shop nicht durcheinander bringt[/li][li]oder eine andere (Killer-)Lösung? ;)[/li][/ul]

Dankeschön im Voraus für eure Tipps

Maike aus München

Hallo Maike,

Gerade habe ich das SSL-Zertifikat für unseren Shop installiert.

Das SSL-Zertifikat wird normalerweise auf dem Server installiert und gilt (je nach Paket) meist für eine Domain oder eine IP-Adresse.
Das was bei Dir passiert, nämlich dass nun der ganze Shop verschlüsselt ist, soll eigentlich nicht so sein: Es werden - vorausgesetzt Du hast die Einstellungen in der config.inc.php richtig gesetzt, nur Formulare verschlüsselt, ggf. auch der Admin-Bereich. Kannst Du Deine config.inc.php mal hier posten (vorher bitte “de-militarisieren”)?

Gruß

Hi,

natürlich sind alle Seiten mit https:// von der selben Domain aufrufbar. Das http[B]s[/B] sagt ja nur “nutze einen anderer Port”. Woher immer die Meinungen kommen, es wäre dann DC ist völlig schleierhaft, schau mal hier: http://googlewebmastercentral-de.blogspot.com/2008/09/die-duplicate-content-penalty.html

Hallo Marco,

Kannst Du Deine config.inc.php mal hier posten

sind das die relevanten Einträge?

1 $this->sShopURL = ‘https://www.example.com’;
2 $this->sSSLShopURL = ‘https://www.example.com’;
3 $this->sAdminSSLURL = ‘https://www.example.com’;
4 $this->sShopDir = ‘/home/httpd/docs/example’;
5 $this->sCompileDir = ‘/home/httpd/docs/example/tmp’;

Dann wäre der Eintrag (“s” beim http) in Zeile 1 falsch, oder?
Warum sollte man denn nicht gleich den ganzen Shop verschlüsseln?

Grüße
Maike

Der erste Eintrag ist verkehrt.
So sollten die Einträge mit SSL korrekt aussehen:

    $this->sShopURL     = 'http://www.domain.tld';
    $this->sSSLShopURL  = 'https://www.domain.tld';
    $this->sAdminSSLURL = 'https://www.domain.tld/admin';

Sicherlich kann man den ganzen Shop auch mittels SSL verschlüsseln, jedoch ist dies eine Performancefrage und bei Traffic auf der Seite wird dem Server dann schon etwas abverlangt. Ausserdem bringts einfach keinen Mehrwert. Google und Co ist wahrscheinlich egal, ich würde aber beim Standard bleiben.

Ok, dann lasse ich nur die Formulare über SSL laufen.

Danke und Grüße
Maike

habe gerade die Empfehlung von der SEO-Agentur unseres Kunden bekommen, den kompletten Shop unter SSL laufen zu lassen, was ich aus Gründen der Performace an sich nicht machen möchte.

Hintergrund: Mit den Standardeinstellungen werden zwar die relevanten Formulare verschlüsselt, jedoch ist es auch möglich die “normalen” Seiten des Shops mit https aufzurufen. Dies würde bedeuten das de facto DC generiert wird.

Wie löst ihr dieses Problem?

Hi,

dies ist kein DC, die Aussage ist einfach total falsch.

Danke Christian, Hat Du mal eine Quelle, wo ich ich das nachlesen kann? Solchen SEO-Gursus kann man leider nur mit handfesten Argumenten kommen.

Hi,

ein paar Einträge drüber :slight_smile:

Eintrag in .htaccess:

Alle Aufrufe mit https:// auf robots_https.txt umleiten

Options +FollowSymlinks
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^robots.txt$ robots_https.txt

robots_https.txt in root mit folgendem Eintrag:

Alle Aufrufe mit https:// aus Suchmaschinen ausschliessen

User-agent: *
Disallow: /

Hallo Frank,

deine Variante finde ich nicht schlecht, damit verhindert man (wenn die robots.txt beachtet wird), dass überhaupt https-Seiten im Index landen. Wobei Google ja nicht dumm ist und wohl schon weiß, wenn eine Seite mit http und https erreichbar ist, dass nur die http im Index landet. Im Moment ist es doch eher so, wer https im Index anstatt http will muß aktiv dafür was tun.

Jepps.
Wobei ich nicht nachvollziehen kann, warum jemand seine https-Seite im Index haben will.
Aber jedem das seine.

Hintergrund: Mit den Standardeinstellungen werden zwar die relevanten Formulare verschlüsselt, jedoch ist es auch möglich die “normalen” Seiten des Shops mit https aufzurufen. Dies würde bedeuten das de facto DC generiert wird.

Hat die SEO-Agentur denn wenigstens auch bemängelt, dass, falls zutreffend, Artikel in mehreren Kategorien sind und dadurch DC entsteht?
Schon allein wenn Hersteller aktiv sind, gibt es pro Artikel min. 2 URLs.

Hallo Foristen,

ich hätte gerne, wonach der Themersteller zuerst fragte. Ich habe den ganzen Shop auf https laufen. Da es nur ein kleiner Shop einer Manufaktur ist, ist das bei max. 50 Besuchern und 1-4 Bestellungen am Tag mit dem Server kein Problem. Wachsen kann der Shop eh nicht, denn mehr als derzeit kann der Künstler nicht produzieren :smiley:

Wie sorge ich nun dafür, dass jemand der über
http://www.domain.tld oder http://www.domain.tld/Kategorie/Artikel/
reinkommt direkt und automatisch - richtig - umgeleitet wird, also auf:
http[B]s[/B]://www.domain.tld bzw. http[B]s[/B]://www.domain.tld/Kategorie/Artikel/

Hier die derzeitige .htaccess

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

RewriteCond %{REQUEST_URI} oxseo\.php$
RewriteCond %{QUERY_STRING} mod_rewrite_module_is=off
RewriteRule oxseo\.php$ oxseo.php?mod_rewrite_module_is=on [L]

RewriteCond %{REQUEST_URI} !(\/admin\/|\/core\/|\/export\/|\/modules\/|\/out\/|\/setup\/|\/tmp\/|\/views\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !(\.html|\/|\.jpg|\.css|\.pdf|\.doc|\.gif|\.png|\.js)$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{REQUEST_URI} !(\/admin\/|\/core\/|\/export\/|\/modules\/|\/out\/|\/setup\/|\/tmp\/|\/views\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (\.html|\/)$ oxseo.php
 

</IfModule>

# disabling log file access from outside
<FilesMatch "(EXCEPTION_LOG\.txt|\.log$|\.tpl$|pkg.rev)">
order allow,deny
deny from all
</FilesMatch>

Options -Indexes
DirectoryIndex index.php index.html

Besten Dank :slight_smile:

Hi,

dafür brauchst du meiner Meinung nach bei OXID keine Anpassungen in der .htaccess sondern es reicht, in der config.php die ShopURL anzupassen:

$this->sShopURL = ‘[B]https[/B]://www.domain.tld’;
$this->sSSLShopURL = ‘https://www.domain.tld’;
$this->sAdminSSLURL = ‘https://www.domain.tld/admin’;

Das habe ich. Daduch sind natürlich alle Links im Shop https. Nur wenn der Besucher über einen externen Link kommt, der auf http lautet, bleibt es bei der ersten seite bei http, wobei Objekte wie Bilder Über https geladen werden, was zu einer nur teilverschlüsselten Seite führt. Das ist nicht gut!

Daher bedarf es einer Weiterleitung auf die zur http url gehörende https Variante. Also beim Einstieg über
http://www.domain.tld/Kategorie/Artikel/
auf
https://www.domain.tld/Kategorie/Artikel/

in der .htaccess eine Weiterleitung so wie:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Danke holgt, auf den ersten Blick eine einwandfreie Lösung :slight_smile:

Leider doch keine Lösung. eFire Connect funktioniert dann nicht mehr. Weder mit www.adresse.tld, noch mit https://www.adresse.tld

Kann man sonst wenigstens eine fix definierte Weiterleitung von http://www.adresse.tld auf https://www.adresse.tld aber nicht für deeplinks machen?

Oder besser noch nur für die Adresse des Connectors keine Umleitung?!

Von der Erstellung von solchen Befehlen habe ich leider keine Ahnung.

Du kannst auch ein Javascript einbauen, das Besucher zu “richtigen” URL umleitet.
Oder Meta-Redirect für alls User einbauen, die von Suchmaschinen gekommen sind…

Ist (sehr) wahrscheinlich nur negativ für dein Suchmaschinenranking und erhöht die Abbruchrate auf der Seite.