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

Problem mit htaccess / mod_rewrite für Relaunch

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
servantez
PostRank 1
PostRank 1
Beiträge: 3
Registriert: 30.03.2006, 14:48

Beitrag von servantez » 13.06.2009, 21:54

Hallo,

ich habe folgendes Problem, was ich auch nach viel Probieren und Forschen nicht lösen kann:

Aktuell gibt es auf einer meiner Websites Aufrufe wie z.B.

https://www.website.de/index.php?query=abc
(nach Eingabe von "abc" in einem Formular)

Nun will ich das optimieren, so daß der Aufruf ist:

https://www.website.de/definition/abc.html

Das geht auch problemlos mit:

Code: Alles auswählen

RewriteEngine on 
Options +FollowSymlinks
RewriteBase /
RewriteRule definition/(.*)\.html /index.php?query=$1
Nun will ich aber gleichzeitig den Suchmaschinen einen 301 für die alten index.php Aufrufe (aus dem G**gle Index) mitgeben, damit ich keinen Duplicate Content erzeuge. Das geht letztlich auch mit:

Code: Alles auswählen

RewriteRule ^/index.php?query=(.*)$ /redirectold.php?query=$1
redirectold.php

Code: Alles auswählen

<?php
$query = $_GET&#91;"query"&#93;;
header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
header&#40;"Location&#58; http&#58;//www.website.de/definition/" . $query . ".html"&#41;;
exit&#40;&#41;;
?>
Problem ist hier natürlich, daß es eine Endlosschleife gibt.

Meine Frage ist also:

Wie kann ich die 301 für die alten Anfragen und gleichzeitig ordentliche URLs erreichen?

Ich würde mich sehr freuen, wenn mir jemand weiterhelfen kann.

Vielen Dank!

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

servantez
PostRank 1
PostRank 1
Beiträge: 3
Registriert: 30.03.2006, 14:48

Beitrag von servantez » 14.06.2009, 21:15

Hmmm... gar niemand?

TBT
PostRank 5
PostRank 5
Beiträge: 306
Registriert: 13.02.2008, 16:11

Beitrag von TBT » 14.06.2009, 23:06

in $_SERVER['REQUEST_URI'] steht die Original Anforderung an den Server drin, also entweder die alte mit query=... oder die bereits umgeschriebene.
Daran kannst du entscheiden, ob deine redirectold.php überhaupt was machen soll

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

servantez
PostRank 1
PostRank 1
Beiträge: 3
Registriert: 30.03.2006, 14:48

Beitrag von servantez » 15.06.2009, 14:02

TBT hat geschrieben:in $_SERVER['REQUEST_URI'] steht die Original Anforderung an den Server drin, also entweder die alte mit query=... oder die bereits umgeschriebene.
Daran kannst du entscheiden, ob deine redirectold.php überhaupt was machen soll
Ahhh... das war ein super Hinweis! Ich habe es jetzt ganz einfach gelöst:

index.php

Code: Alles auswählen

<?php
$request = "/index.php?query=" . $_GET&#91;"query"&#93;;

if &#40;$_SERVER&#91;'REQUEST_URI'&#93; == $request&#41;
&#123;
  header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
  header&#40;"Location&#58; http&#58;//www.website.de/definition/" . $query . ".html"&#41;;
  exit&#40;&#41;;
&#125;

?>
.htaccess

Code: Alles auswählen

RewriteEngine on 
Options +FollowSymlinks
RewriteBase /

RewriteRule definition/&#40;.*&#41;\.html /index.php?query=$1   
Die redirectold.php habe ich ganz weggelassen.

Das funktioniert einwandfrei. Ich hoffe, daß damit auch die Suchmaschinen die korrekten 301 bekommen, aber ich denke so müsste es gehen.

Vielen Dank, TBT!

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag