![]() |
ModRewrite: Wie Weiterleitung von ".html" auf &quo
Hi zusammen,
ich verzweifle wieder mal vor diesen regulären Ausdrücken bzw. mit .htaccess allgemein. Ich habe eine URL wie ![]() ![]() Mein Versuch war neben unzähligen anderen folgender:
Code:
Doch das leitet mir auf URLs weiter, in denen der absolute Serverpfad steckt und ähnliches. Eigentlich muss ich die URL oben auch nicht in 3 Variablen "zerlegen", da reicht mir die ID.
RewriteCond %{REQUEST_URI} ^(.*)/category/id([0-9]+)/(.*)\.html$ [NC]
RewriteRule . index.php?page=category&id=$2 [R=301,L] Ich möchte, dass die alte URL von Google & Co. verschwindet. Die neuen, die ich auf der Website anzeige haben das Format: ![]() Diese leite ich in der .htaccess-Datei auf die korrekten Dateien weiter, weshalb ich diesen Pfad vermutlich nicht oben als Ziel angeben kann. Schön wäre natürlich, wenn das ginge und direkt auf den neuen Pfad weitergeleitet wird, sodass in der Adresszeile auch der neue beim Aufruf des alten steht. Wie mache ich es richtig? Grüße, Matze |
Re: ModRewrite: Wie Weiterleitung von ".html" auf
Also ich vgerwende weiterleitungen immer ungefähr so:
RewriteRule ^activate/([^/]+) index.php?p=activate&h=$1 [NC,L] Deine würde ich dementsprechend anpassen: RewriteRule ^([^/]+)/([^/]+)/name.html index.php?page=$1&id=$2 [NC,L] ( $1 = Kategorie, $2 = die ID ) So funktionierts bei mir lokal. |
Re: ModRewrite: Wie Weiterleitung von ".html" auf
Hallo Michael,
gut danke, damit könnte ich leben. Es wird halt nicht die URL in der Adressleiste angepasst. Was mir aber sehr wichtig wäre, eine 301-Meldung zurückzugeben. Nicht dass im schlimmsten Fall Google meine Seite aufgrund von Mehrfachinhalten sperrt. Leider wird in der folgenden Lösung wieder der absolute Pfad mit in die zu weiterleitende URL eingefügt:
Code:
Weißt du dafür auch eine Lösung?
RewriteRule ^category/id([0-9]+)/([a-z_]+)\.html index.php?page=category&id=$1 [NC,L,R=301]
Grüße, Matze |
Re: ModRewrite: Wie Weiterleitung von ".html" auf
Stehen noch andere RewriteRules Vor bzw. über dieser von dir gezeigten Rule?
Weil meine Erfahrung ist, dass man die "normalen" Rules (ohne ([^/]+) usw) immer UNTER Rules MIT ([^/]+) schreiben sollte. Aber leider kann ich dir nicht mehr weiter helfen. Denn ich bin in diesem Thema selber noch ein Anfänger. Was meinst du mit URL angepasst? |
Re: ModRewrite: Wie Weiterleitung von ".html" auf
Wenn du es rein über die htaccess lösen willst, kann ich dir auch nicht helfen, denn mit der steh ich auch regelmäßig auf dem Kriegspfad, wenn es um solche "komplexen" Umleitungen geht.
Ich habe mir auf meiner Seite damit beholfen, dass ich eine Umleitung mit PHP erstellt habe. Als ich die URLs von den Blogeinträgen geändert habe, habe ich in der für den Blog zuständigen Datei einfach per Regexp überprüft, über welche URL die Seite aufgerufen wurde, und dann ggf. eine Umleitung erstellt:
Code:
// 301-Weiterleitung zu URL
function redirect($url) { header("HTTP/1.1 301 Moved Permanently"); header("Location: $url"); } // 301-Weiterleitung zu relativem Pfad function redirect2($file) { header("HTTP/1.1 301 Moved Permanently"); $host = $_SERVER['HTTP_HOST']; header("Location: http://$host$url"); } |
Re: ModRewrite: Wie Weiterleitung von ".html" auf
Warum übergibst Du in der zweiten Funktion den Parameter $file, der nicht genutzt wird und nutzt eine Variable $url, die nirgends definiert ist? :gruebel:
|
Re: ModRewrite: Wie Weiterleitung von ".html" auf
Zitat:
|
Re: ModRewrite: Wie Weiterleitung von ".html" auf
Hi
@Michael: Mit "anpassen" meinte ich, dass ich per PHP alle Links eines bestimmten Typs (zu Übersichtsseiten) geändert habe. Und Weiterleiten muss ich nicht unbedingt, das wäre das kleinste Problem, ich möchte nur, dass Google auch mitbekommt, dass die bisherigen Links nicht mehr existieren und so nach und nach aus dem Suchindex fliegen. Solche generellen Weiterleitungen mache ich prinzipiell über htaccess, da so viel schneller und unauffälliger weitergeleitet wird und ich zusätzlich den Suchmaschinen mitteilen kann, was los ist. Edit: ok ich sehe gerade an obigem Code, dass diese Rückgabewerte auch per PHP realisierbar sind. Aber ich probiere nochmals etwas herum, denke aber nicht, dass es an der Reihenfolge liegt. Grüße, Matze Edit 2: So funktioniert die Weiterleitung. Vielleicht reicht mir das schon:
Code:
Edit 3: Hm geht doch nicht. Hatte die alte Regel noch drinnen und die bewirkte die Anzeige.
RewriteRule ^category/id([0-9]+)/([a-z_]+)\.html index.php?page=category&id=$1 [R=301,L]
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz