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

htaccess - Weiterleitung einer Unterseite

Hier können Sie Ihre Fragen zum Thema Suchmaschinenoptimierung (SEO) / Positionierung stellen
Neues Thema Antworten
FranzderFranke
PostRank 6
PostRank 6
Beiträge: 488
Registriert: 29.04.2008, 17:11

Beitrag von FranzderFranke » 09.09.2008, 14:20

Das ist mein Code:

Code: Alles auswählen

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.xxx\.de$
RewriteRule (.*) http://www.xxx.de/$1 [L,R=301] 
Redirect permanent /product_info.php?products_id=Schornsteinhaube-in-Kupfer-650-x-800mm-97 

http://www.xxx.de/product_info.php?products_id=Schornsteinhaube-Sondergroessen-in-Kupfer-174
Eine Weiterleitung klappt aber nicht!

Kann jemand helfen?

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.


Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 09.09.2008, 14:27

FranzderFranke hat geschrieben:Redirect permanent /product_info.php?products_id=

Eine Weiterleitung klappt aber nicht!
Du hast den kleinen, aber feinen Hinweis in der Redirect-Anleitung übersehen, dass das zweite Argument ein URL-Pfad sein soll („Redirect [status] URL-path URL“), nicht eine vollständige URL. Der Pfad einer URL ist der Teil zwischen dem ersten Schrägstrich (einschließlich) bis zum darauf folgenden Frage- oder Nummerzeichen (ausschließlich). Du kannst mit Redirect also /product_info.php umleiten, aber nicht /product_info.php?products_id=bla.

Um auch die URL-Parameter abgreifen zu können, musst du wieder auf mod_rewrite zurückgreifen, und dort auf RewriteCond, da für RewriteRule das Gleiche gilt wie für Redirect. Ergo:

RewriteBase /
RewriteCond %{QUERY_STRING} ^products_id=bla$
RewriteRule ^product_info\.php$ https://www.example.com/uswusf [R=301,L]

FranzderFranke
PostRank 6
PostRank 6
Beiträge: 488
Registriert: 29.04.2008, 17:11

Beitrag von FranzderFranke » 09.09.2008, 15:28

SUPER

Danke - es klappt alles!!!

ranger99
PostRank 1
PostRank 1
Beiträge: 1
Registriert: 11.12.2008, 13:30

Beitrag von ranger99 » 11.12.2008, 13:31

Hallo zusammen,
erstmal danke für die hilfreiche Tipps.

Jetzt habe ich einen sonderfall, ich möchte verschiedene Verzeichnisse zu jeweils einem dynamischen Link weiterleiten, allerdings dabei in der Adresszeile des Browsers den Verzeichnisnamen stehen lassen.

Beispiel:
https://www.meineurl.de/ordner1/
soll weitergeleitet werden zu:
https://www.meineurl.de/index.php?id=variable1
In der Adresszeile des Browsers soll aber weitehin stehen:
https://www.meineurl.de/ordner1/

Weiß jemand wie das in der htacces aussehen muss? Und vor allem kann ich dar mehrere Weiterleitungen definieren ohne das die ornder1, ordner2, ... überhaupt existieren müssen?

Geht sowas auch mit subdomains?

Danke und Grüße vom ranger99

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 11.12.2008, 21:21

ranger99 hat geschrieben:https://www.meineurl.de/ordner1/
soll weitergeleitet werden zu:
https://www.meineurl.de/index.php?id=variable1
In der Adresszeile des Browsers soll aber weitehin stehen:
https://www.meineurl.de/ordner1/

Weiß jemand wie das in der htacces aussehen muss?
Du schaust dir am besten erst einmal die mod_rewrite-Anleitung an, sinnigerweise zuerst den Abschnitt zu RewriteRule. Sonst weißt du nicht, wie das Teil überhaupt funktioniert bzw. was du hier eigentlich abtippst - und du möchtest das ja sicher irgendwann ohne Hilfe nutzen.
Und vor allem kann ich dar mehrere Weiterleitungen definieren ohne das die ornder1, ordner2, ... überhaupt existieren müssen?
Der Zugriff auf eine Datei ist mit der letzte Schritt, den der Apache beim Bearbeiten einer URL ausführt. mod_rewrite greift vorher ein, d.h. keine URL, die du mit mod_rewrite bearbeitest, muss tatsächlich auf der Festplatte als Datei oder Verzeichnis existieren.

Zum Stichwort „mehrere“ wäre noch anzumerken, dass RewriteRule meist mit Mustern eingesetzt wird. Dabei wird an Hand eines Musters ein Teil aus der gegebenen URL kopiert und zu einer neuen URL zusammengesetzt. Damit hast du die Möglichkeit, mit demselben Muster bzw. Schema gleich einen ganzen Packen an URL-Pfaden zu bearbeiten.

Beispiel: RewriteRule ^ordner([0-9])/$ index.php?ordner=$1. Aus einem URL-Pfad, der beginnt mit ordner, gefolgt von einer Ziffer zwischen 0 und 9, gefolgt von einem Schrägstrich, gefolgt vom Textende, wird von RewriteRule der Teil in den runden Klammern kopiert und in den neuen Pfad dort eingefügt, wo $1 steht.

Aus ordner1 würde also index.php?ordner=1 werden und das ganze funktioniert entsprechend auch mit den anderen neun Ordnern von ordner0 bis ordner9.

mod_rewrite nutzt zur Mustererkennung die PCRE-Bibliothek. Sie kommt auch anderen Projekten zum Einsatz, in der PHP-Anleitung findet sich eine recht ordentliche Beschreibung.
Geht sowas auch mit subdomains?
Ja, das hängt aber davon ab, wie die Subdomains realisiert wurden. Werden sie aus demselben Verzeichnis wie die Hauptdomain bedient, geht's (mittels RewriteRule vorgeschaltetem RewriteCond %{HTTP_HOST} =sub.do.main), wenn nicht, dann in aller Regel nicht.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag