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

301 Weiterleitung per htaccess

Hier können Sie Ihre Fragen zum Thema Suchmaschinenoptimierung (SEO) / Positionierung stellen
Neues Thema Antworten
muden
PostRank 1
PostRank 1
Beiträge: 13
Registriert: 24.04.2006, 11:33
Wohnort: Hamburg

Beitrag von muden » 20.06.2006, 17:35

Moin moin!

Stecke bei folgendem Problem fest:
Habe doppelten Content, welchen ich per mod_rewrite verhindern will.
Ich bin unter 1. emude.de/verzeichnisse und 2.emude.de/verzeichnisse/ erreichbar.
Nun sollen alle Verzeichnisendungen OHNE / zu denen MIT / am Ende der url per 301 weitergeleitet werden. Außerdem sollen www.emude.de/*.html zu emude.de/*.html weitergeleitet werden, sowie www.emude.de/verzeichnis/*.html zu emude.de/verzeichnis/*.html. Die Probleme sind also 1. die slashs am Verzeichnisnamenende und 2. das entfernen aller www's per 301.Habe es geschafft, von www.emude.de und www.emude.de/ auf emude.de/ weiterzuleiten. Meine htaccess sieht wie folgt aus:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php

# Von www.* auf * umleiten
RewriteCond %{HTTP_HOST} ^www\.emude\.de$ [NC]
RewriteRule ^(.*)$ https://emude.de/$1 [L,R=301]

# Spambots nach User_agent aussperren

RewriteCond %{HTTP_USER_AGENT} ^.*Whacker.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*FileHound.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*TurnitinBot.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*JoBo.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*adressendeutschland.*$
RewriteRule ^.* - [F]


Ich komme mit den "regulären Ausdrücken nicht klar und bin für jeden Tip dankbar!!

Viele Grüße aus Hamburg, Dirk

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

haha
PostRank 9
PostRank 9
Beiträge: 1065
Registriert: 03.04.2006, 18:08
Wohnort: Bi Hamborg

Beitrag von haha » 20.06.2006, 18:45

muden hat geschrieben:Nun sollen alle Verzeichnisendungen OHNE / zu denen MIT / am Ende der url per 301 weitergeleitet werden.
Das passiert automatisch (sofern es sich um reale Verzeichnisse handelt).
Außerdem sollen www.emude.de/*.html zu emude.de/*.html weitergeleitet werden, sowie www.emude.de/verzeichnis/*.html zu emude.de/verzeichnis/*.html.
Das hast Du mit …
# Von www.* auf * umleiten
RewriteCond %{HTTP_HOST} ^www\.emude\.de$ [NC]
RewriteRule ^(.*)$ https://emude.de/$1 [L,R=301]
…schon drin.

Jetzt die große Frage: Wo ist Dein Problem? :)

Nur am Rande:
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
Diese Aktion ist extrem unklug. Jedes Objekt, das bei Dir nicht existiert (und auf das Muster passt), wird ohne weiteren Kommentar mit der Startseite, genauer gesagt mit dem Inhalt der Startseite beantwortet. Damit verwirrst Du erstens die Besucher, weil die nicht auf ihren Fehler hingewiesen werden, und zweitens "produzierst" Du unendlich viele Seiten auf Deinem Server, weil Du auch Robots nicht auf fehlerhafte URLs hinweist.
Nimm' diesen groben Unfug lieber raus und benutze eine vernünftige Fehlerseite - spricht ja nichts dagegen, dass Du dort neben der freundlichen Fehlermeldung auf wichtige Seiten hinweist.

muden
PostRank 1
PostRank 1
Beiträge: 13
Registriert: 24.04.2006, 11:33
Wohnort: Hamburg

Beitrag von muden » 20.06.2006, 19:45

Puh...diese Sachen die Du für nachteilig hältst benötige ich für joomla, zum generieren sumafreundlicher urls. Und wenn ich zusätzlich noch Fehlerdokumente einbaue?Also das Problem ist daß es nicht funktioniert...nur im Hauptverzeichnis, nicht in den Unterverzeichnissen. :o

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


muden
PostRank 1
PostRank 1
Beiträge: 13
Registriert: 24.04.2006, 11:33
Wohnort: Hamburg

Beitrag von muden » 20.06.2006, 19:46

Ach.. es handelt sich NICHT um relae Verzeichnisse!! :idea: Es sind welche die von mod_rewrite gemacht wurden..

haha
PostRank 9
PostRank 9
Beiträge: 1065
Registriert: 03.04.2006, 18:08
Wohnort: Bi Hamborg

Beitrag von haha » 20.06.2006, 21:32

Nun sollen alle Verzeichnisendungen OHNE / zu denen MIT / am Ende der url per 301 weitergeleitet werden.

Ach.. es handelt sich NICHT um relae Verzeichnisse!! Es sind welche die von mod_rewrite gemacht wurden..
Also von mod_rewrite wurden die nicht gemacht, jedenfalls nicht in der .htaccess, die Du zitiert hast. Du meinst vermutlich für mod_rewrite, nicht durcheinander bringen.

Wie dem auch sei, grundsätzlich solltest Du Verweise auf solche Verzeichnisse so ausgeben, dass sie immer einen Schrägstrich am Ende haben. Für die Leute, die den Schrägstrich beim Eintippen vergessen, reicht folgende Zeile:

RewriteRule ^((.+/|)[^./]+)$ $1/ [L,R=301]

[^./]+$ greift den Teil am Ende ($) des Pfades ab, der weder (^) einen Punkt noch einen Schrägstrich enthält ([^./]), es muss dabei mindestens ein Zeichen vorhanden sein (+).

Da wir den kompletten Pfad weiterleiten wollen und nicht nur den letzten Buchstaben, sitzt davor noch ^(.+/|). Dieser Teil verlangt, dass vom Anfang (^) bis zum eben schon abgegriffenen Pfadende entweder irgendwas mit einem Schrägstrich am Ende kommt (.+/) oder (|) gar nichts (das Nichts zwischen | und ) ). Die runden Klammern begrenzen den Bereich, in dem das Oder (|) wirkt.
Dadurch, dass dieser Teil mit einem Schrägstrich enden oder leer sein muss, und gleichzeitig im anderen Teil am Ende kein Schrägstrich mehr kommen darf, teilen wir die URL in Verzeichnispfad und Objektname auf.

Das trifft dann auf "bla" zu (Anfang, nichts, Teil-ohne-Punkt-und-Schrägstrich ("bla"), Ende) wie auch auf "bla/fasel" oder "bla/blo/fasel" (Anfang, Irgendwas-mit-Schrägstrich-am-Ende ("bla/" bzw. "bla/blo/"), Teil-ohne-Punkt-und-Schrägstrich ("fasel"), Ende).

Das zusätzliche Klammerpaar nimmt den kompletten Pfad auf, damit wir ihn in die neue URL per $1 einfügen können. Du könntest, nebenbei bemerkt, das zweite Klammerpaar (das das Oder begrenzt) mit $2 einfügen, aber das macht natürlich keinen Sinn.

muden
PostRank 1
PostRank 1
Beiträge: 13
Registriert: 24.04.2006, 11:33
Wohnort: Hamburg

Beitrag von muden » 21.06.2006, 13:53

Moin!

vielen Dank für Deine Hilfe, es hat geklappt!! Aber reguläre Ausdrücke finde ich echt schwierig, hoffe daß ich da nochmal durchsteige. Zum Beispiel würde ich gern selbst ergründen können warum folgendes keinen Sinn macht: "Du könntest, nebenbei bemerkt, das zweite Klammerpaar (das das Oder begrenzt) mit $2 einfügen, aber das macht natürlich keinen Sinn."

danke und viele Grüße...
Dirk

haha
PostRank 9
PostRank 9
Beiträge: 1065
Registriert: 03.04.2006, 18:08
Wohnort: Bi Hamborg

Beitrag von haha » 21.06.2006, 17:08

muden hat geschrieben:Zum Beispiel würde ich gern selbst ergründen können warum folgendes keinen Sinn macht: "Du könntest, nebenbei bemerkt, das zweite Klammerpaar (das das Oder begrenzt) mit $2 einfügen, aber das macht natürlich keinen Sinn."
Da siehst Du den Wald vor lauter Bäumen nicht :) Es macht einfach keinen Sinn für Deinen gegebenen Anwendungszweck. Die erste, äußere Klammer umfasst bereits den gesamten Pfad. Da wir nicht mehr brauchen, macht es in diesem Fall keinen Sinn, auch noch den Inhalt der zweiten, inneren Klammer in die neue URL einzubauen.
Zerlegst Du "bla/fasel", kommt mittels der Vorlage $1/ der Pfad "bla/fasel/" raus, exakt das, was Du wolltest. Man könnte (!) zum Beispiel auch $1/?$2 benutzen, dann erhält man "bla/fasel/?bla/" - aber das macht halt keinen Sinn.

Ich wollte mit der Anmerkung nur darauf hinweisen, dass runde Klammern zweierlei Funktion haben: Erstens greifen sie Textteile heraus, so dass man sie mit $1 bis $9 wiederverwenden kann, zweitens gruppieren sie aber auch die Musterteile und grenzen sie gegen andere ab, wie hier zum Beispiel um ein Oder herum.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag