Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

mehrsprachigkeit - wie soll die sprachselektion geschehen?

Hier können Sie Ihre Fragen zum Thema Suchmaschinenoptimierung (SEO) / Positionierung stellen
Thies
PostRank 3
PostRank 3
Beiträge: 98
Registriert: 16.03.2006, 15:16
Wohnort: Stadtilm

Beitrag von Thies » 06.11.2007, 17:52

Ich wollte es eigentlich vorher testen, schaffe das aber aufgrund Stress auf Arbeit nicht. Probiere mal folgendes als Inhalt der Datei .htaccess aus, die im root-Verzeichnis liegen muss:

Code: Alles auswählen

RewriteEngine On

RewriteRule ^(.*)/(.*)\.php$ $2.php?lang=$1 [L]
Die Variable $lang beinhaltet dann die aufgerufene Sprache.

Ich arbeite bereits an einem Artikel auf meiner Website zu diesem Thema, wo ich die konkrete Vorgehensweise beschreibe inkl. php-Beispiel-Dateien.

CU

Frank-Andre

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

flanders
PostRank 1
PostRank 1
Beiträge: 21
Registriert: 06.09.2007, 21:47

Beitrag von flanders » 06.11.2007, 23:34

danke für die .htaccess, leider funzt die nicht wie gewünscht.

Um ins englische zu kommen muss ich ja "www.domain.de/eng/index.php" eingeben.

Ich hätte gerne das er bei "www.domain.de/eng" auf "www.domain.de/index.php?lang=eng" geht, aber trotzdem in der browserzeile "www.domain.de/eng" steht! geht das?

habe viel rumprobiert aber nichts zu Stande bekommen :(

gruss,
micha

Thies
PostRank 3
PostRank 3
Beiträge: 98
Registriert: 16.03.2006, 15:16
Wohnort: Stadtilm

Beitrag von Thies » 07.11.2007, 22:21

Dann probiere mal folgendes aus - ist ungetestet:

Code: Alles auswählen

RewriteEngine On 

RewriteRule ^(.*)/eng$ index.php?lang=eng [L]
RewriteRule ^(.*)/(.*)\.php$ $2.php?lang=$1 [L]

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

flanders
PostRank 1
PostRank 1
Beiträge: 21
Registriert: 06.09.2007, 21:47

Beitrag von flanders » 09.11.2007, 08:51

das haut leider auch nicht hin! denn:
wenn ich, https://www.domain.de/eng eingebe, bekomme ich nur n 404 Not Found. man muss schon www.domain.de/eng/index.php eingeben.

Falls es nicht anders geht, Thies, ist es nicht schlimm. Trotzdem vielen Dank für deine engagierte Hilfe!

jrg
PostRank 1
PostRank 1
Beiträge: 28
Registriert: 23.05.2007, 15:53
Wohnort: Ruda Śląska, Polen

Beitrag von jrg » 09.11.2007, 13:41

Mach neue subdomain. Das ist die beste Loesung.

Thies
PostRank 3
PostRank 3
Beiträge: 98
Registriert: 16.03.2006, 15:16
Wohnort: Stadtilm

Beitrag von Thies » 09.11.2007, 23:16

jrg hat geschrieben:Mach neue subdomain. Das ist die beste Loesung.
Und was soll das dann bringen?

@flanders:

ich bekomme es noch nicht hin. Wenn Du am Ende ein / machst, dann schaffe ich es mit folgendem Code:

Code: Alles auswählen

RewriteEngine On 

RewriteRule ^(.*)/(.*)\.php$ $2.php?lang=$1 [L] 
RewriteRule ^(.*)/$ index.php?lang=$1 [L] 
Dann wird www.domain.de/eng/ auf www.domain.de/index.php?lang=eng umgeleitet. Aber ohne den letzten / bekomme ich es derzeit nicht hin. Aber ich bleibe dran!

CU

Frank-Andre

jrg
PostRank 1
PostRank 1
Beiträge: 28
Registriert: 23.05.2007, 15:53
Wohnort: Ruda Śląska, Polen

Beitrag von jrg » 10.11.2007, 08:36

@Thies
Das macht Aufgabe leichter, wenn du deine Seite z. B. in englisches SERP haben moechtest.

manno
PostRank 1
PostRank 1
Beiträge: 23
Registriert: 04.11.2007, 11:01

Beitrag von manno » 10.11.2007, 10:23

na ja
wie viele Andere in diesem Beitrag finde auch ich, das eine Sprachweiche mit Browsererkennung nur dem Ego des Designers dient. Weder Suchmaschinen noch Besucher brauchen das.

Viel wichtiger ist eine einfache Struktur mit Subdomains oder Unterordnern und ein gut zu erkennendes Sprachauswahlmenü wie z.B. Flaggen usw.

Man kann natürlich beides anbieten aber ich denke dies ist genau so überflüssig wie Flash Filmchen im Header die vom lesen ablenken.

Gruss manno 8)

catcat
PostRank 10
PostRank 10
Beiträge: 10292
Registriert: 02.08.2006, 13:21
Wohnort: Litauen

Beitrag von catcat » 10.11.2007, 11:20

manno hat geschrieben:na ja
wie viele Andere in diesem Beitrag finde auch ich, das eine Sprachweiche mit Browsererkennung nur dem Ego des Designers dient. Weder Suchmaschinen noch Besucher brauchen das.
Genau!
Sprachweiche mit Charset-Erkennung nützt dem deutschen user aus malle wenig, wenn er dann bei Dir auf ne spanischsprachige Seite kommt.
Ausserdem muss ich dann immer an das Wort: "Bevormundung" denken...

bubbles
PostRank 4
PostRank 4
Beiträge: 159
Registriert: 06.10.2005, 17:54

Beitrag von bubbles » 10.11.2007, 12:28

Thies hat geschrieben:

Code: Alles auswählen

RewriteEngine On 

RewriteRule ^(.*)/(.*)\.php$ $2.php?lang=$1 [L] 
RewriteRule ^(.*)/$ index.php?lang=$1 [L] 
Dann wird www.domain.de/eng/ auf www.domain.de/index.php?lang=eng umgeleitet. Aber ohne den letzten / bekomme ich es derzeit nicht hin. Aber ich bleibe dran!
Ist zwar ne weile her seit dem ich mod_rewrite Anweisungen verfasst habe, aber afaik:

das liegt daran dass RewriteRule nur den Teil ab der Domain bis zum Query-String (also bei bla.com/Test.php?xy=z nur Test.php) vergleicht, um auch die domain/den host vergleichen zu können braucht man eine RewriteCond und keine RewriteRule - siehe dazu auch div. mod_rewrite tutorials...

d.h. bei dir greift die 2. RewriteRule zu die lautet ^(.*)/$ d.h. wenn du hier das / weg lässt funktioniert es ohne /

außerdem würde ich um dc bzw. 404er zu vermeiden mit 301 von eng/ zu eng weiterleiten bzw. umgekehrt

Btw, wenn man schon mod_rewrite einsetzt, dann kann man doch auch die endung .php weglassen (ist zwar nur geschmackssache, aber imho sieht's besser aus)

Thies
PostRank 3
PostRank 3
Beiträge: 98
Registriert: 16.03.2006, 15:16
Wohnort: Stadtilm

Beitrag von Thies » 10.11.2007, 14:31

Hi,
bubbles hat geschrieben:d.h. bei dir greift die 2. RewriteRule zu die lautet ^(.*)/$ d.h. wenn du hier das / weg lässt funktioniert es ohne /
eben leider nicht, hatte ich ja auch probiert. Dann findet er aber gar nichts mehr.
bubbles hat geschrieben:außerdem würde ich um dc bzw. 404er zu vermeiden mit 301 von eng/ zu eng weiterleiten bzw. umgekehrt
Klar, ist ja auch noch nicht die endgültige Version :)
bubbles hat geschrieben:Btw, wenn man schon mod_rewrite einsetzt, dann kann man doch auch die endung .php weglassen (ist zwar nur geschmackssache, aber imho sieht's besser aus)
Finde ich auch, aber das muss jeder für sich selber wissen.

CU

Frank-Andre

bubbles
PostRank 4
PostRank 4
Beiträge: 159
Registriert: 06.10.2005, 17:54

Beitrag von bubbles » 10.11.2007, 15:09

Thies hat geschrieben:Hi,
bubbles hat geschrieben:d.h. bei dir greift die 2. RewriteRule zu die lautet ^(.*)/$ d.h. wenn du hier das / weg lässt funktioniert es ohne /
eben leider nicht, hatte ich ja auch probiert. Dann findet er aber gar nichts mehr.
d.h. mit RewriteRule ^(.*)$ index.php?lang=$1 [L] bei domain.com/eng leitet er nicht auf index.php?lang=eng weiter?

Was denkbar wäre, ist dass domain.com nicht mehr richtig funktioniert (da .*) da könnte man aber .+ versuchen bzw. die unterstützen sprachen explizit angeben (eng|deu) oder (en|de)

also:
RewriteRule ^(eng|deu)$ index.php?lang=$1
oder
RewriteRule ^(.+)$ index.php?lang=$1

Weiteres könnte man vorrübergehend auch [R=302] bei den Anweisungen anhängen um zu sehen wohin wirklich umgeleitet wird

Thies
PostRank 3
PostRank 3
Beiträge: 98
Registriert: 16.03.2006, 15:16
Wohnort: Stadtilm

Beitrag von Thies » 10.11.2007, 15:30

Danke bubbles für die Hinweise!!!

Auf dieser Basis und noch etwas googeln, habe ich - bisherige Tests sahen gut aus - die Lösung gefunden:

Code: Alles auswählen

RewriteEngine On 
Options +FollowSymlinks

RewriteBase /

RewriteCond   %{REQUEST_FILENAME}   !-f
RewriteCond   %{REQUEST_URI} !/$
RewriteRule   (.*) $1/  [R=301,L]

RewriteRule ^(.*)/(.*)\.php$ $2.php?lang=$1 [L] 
RewriteRule ^(.*)/$ index.php?lang=$1 [L] 
In der Zeile RewriteBase / muss der Slash angepasst werden, wenn die Seiten in Unterverzeichnissen liegen.

Probiere es mal so, flanders

CU

Frank-Andre

Nachtrag:
Ich habe das Thema mal als Artikelonline gestellt. Könnte ja vielleicht auch andere interessieren.

flanders
PostRank 1
PostRank 1
Beiträge: 21
Registriert: 06.09.2007, 21:47

Beitrag von flanders » 13.11.2007, 18:26

oh danke jungs, war leider im wohlverdienten urlaub und konnte nicht reingucken. werde es ausprobieren! melde mich noch dazu

danke schonmal

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag