Herzlich willkommen im Archiv vom ABAKUS Online Marketing Forum
Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.
Mit Redirect kannst du, wie die Anleitung schon sagt, nur den URL-Pfad ansprechen. Der Pfad ist der Teil einer URL zwischen dem ersten Schrägstrich (einschließlich) und dem ersten Frage- oder Nummernzeichen (ausschließlich). Die Parameter, die mit dem Fragezeichen eingeleitet werden, gehören also nicht dazu.Boeser-Nachbar hat geschrieben:Dazu habe ich dann in der .htaccess Datei folgendes definiert
RedirectPermanent /index.php?id=115 https://www.nachbarrechtsgesetze.de/links.html
Code: Alles auswählen
RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /index.php
RewriteCond %{THE_REQUEST} " /index\.php\?id=115 "
RewriteRule ^index\.php$ http://www.nachbarrechtsgesetze.de/links.html [R=301,L]
Code: Alles auswählen
URL=http://www.nachbarrechtsgesetze.de/index.php?id=115
Result code: 302 (Found / Moved Temporarily)
New location: http://www.nachbarrechtsgesetze.de/bundesland.html
URL=http://www.nachbarrechtsgesetze.de/bundesland.html
Result code: 200 (OK / OK)
Ich schrieb doch: „Füge die beiden Zeilen als erste nach den RewriteEngine- und RewriteBase-Zeilen ein.“ Du hast sie ans Ende der Datei angehängt, probiere es nochmal direkt nach der RewriteEngine-Zeile.Boeser-Nachbar hat geschrieben:funktioniert leider nicht (oder ich bin suboptimal talentiert).
Code: Alles auswählen
RewriteEngine On
RewriteCond %{THE_REQUEST} " /index\.php\?id=115 "
RewriteRule ^index\.php$ http://www.nachbarrechtsgesetze.de/links.html? [R=301,L]
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /index.php
Putzig, kommt immer noch die Typo-Weiterleitung? Nimm doch mal alle anderen Rewrite- und Redirect-Zeilen aus der .htaccess, behalte nur die drei oben genannten. Greift diese Weiterleitung dann? Falls nicht, ändere das Muster ^index\.php$ in der RewriteRule-Zeile in index\.php (d.h. ^ und $ entfernen), falls auch das nicht will, in . (ein einzelner Punkt).Boeser-Nachbar hat geschrieben:Funzt aber leider immer noch nicht (ich weiss eher untalentiert)Code: Alles auswählen
RewriteEngine On RewriteCond %{THE_REQUEST} " /index\.php\?id=115 " RewriteRule ^index\.php$ http://www.nachbarrechtsgesetze.de/links.html? [R=301,L]
Unmöglich. Wenn du, wie ich vorgeschlagen hatte, um dem Fehler auf die Schliche zu kommen, die .htaccess bis auf besagte drei Zeilen gänzlich leerst, funktioniert Typo nicht mehr und damit kann auch die bei Typo eingestellte Weiterleitung nicht mehr funktionieren - es sei denn, du hast die falsche .htaccess zu fassen. Du machst also augenscheinlich irgendwas grundsätzliches falsch.Boeser-Nachbar hat geschrieben:egal was ich versuche, immer:
Result code: 302 (Found / Moved Temporarily)
Scheint wohl definitv an dem pageNotFound_handling von Typo zu liegen.
Code: Alles auswählen
RewriteCond %{THE_REQUEST} "/index\.php\?id=115"
RewriteRule ^index\.php$ http://www.nachbarrechtsgesetze.de/links.html? [R=301,L]
Nanu? Dass aus irgendeinem Grund die Muster nicht passen, hatte ich schon im Verdacht, aber dass es an den Leerzeichen liegt … Könntest du mir einen Gefallen tun und Folgendes probieren:Boeser-Nachbar hat geschrieben:STOP: ES LAG an den beiden LEERZEICHEN hier
" /index\.php\?id=115 "
Die habe ich rausgeschmissen und schon funktionierte es
Entweder du machst das oder du setzt ein eigenes Skript auf, das sämtliche ?id=-URLs abfängt. In etwa so:Kopiere ich den Code dann am besten 9 mal hintereinander und passe die Zeile und die ids entsprechend an ? scheint mir die einfachste Art zu sein, oder?
Code: Alles auswählen
RewriteCond %{THE_REQUEST} "/index\.php\?id="
RewriteRule ^index\.php$ alteurls.php [L]
Code: Alles auswählen
<?php
$urls = Array(
"/index.php?id=115" => "http://and.ere/url1",
"/index.php?id=116" => "http://and.ere/url2"
);
if (isset($urls[$_SERVER["REQUEST_URI"]])) {
header("301 Moved");
header("Location: " . $urls[$_SERVER["REQUEST_URI"]]);
exit;
}
else {
header("404 Not found");
echo "<html><body>Nix gefunden. Scheiß auch.</body></html>";
exit;
}
?>
Code: Alles auswählen
RewriteCond %{THE_REQUEST} /index\.php\?id=115
RewriteRule ^index\.php$ http://www.nachbarrechtsgesetze.de/links.html?%{THE_REQUEST} [R=301,L]
Code: Alles auswählen
http://www.nachbarrechtsgesetze.de/links.html?GET%20/index.php%3fid=115%20HTTP/1.1
Code: Alles auswählen
RewriteCond %{THE_REQUEST} \s/index\.php\?id=115\s
RewriteRule ^index\.php$ http://www.nachbarrechtsgesetze.de/links.html? [R=301,L]
Merkwürdig, da sind die beiden Leerzeichen (als %20 kodiert) wie erwartet drin. Warum's mit dem Leerzeichen-Muster nicht passt, ist mir jetzt etwas schleierhaft, aber sei's drum.Boeser-Nachbar hat geschrieben:ich erhalte als URL dann ?GET%20/index.php%3fid=115%20HTTP/1.1