Seite 1 von 3
mod_rewrite Problem
Verfasst: 09.10.2007, 17:36
von w3news
Hallo,
ich komm mal wieder nicht klar
Ich möchte gerne die Datei artikel.php?id=10 umwandeln in artikel_titel_der_meldung_10.html komme aber absolut nicht klar damit!
Desweiteren wollte ich die momentane Datei artikel10.html auf die neue per 301er umleiten, aber irgendwie raffe ich das nicht!
Kann mir jemand helfen?
Danke!
Verfasst: 09.10.2007, 20:12
von w3news
Okay Nummer 1 hat sich erledigt:
Code: Alles auswählen
RewriteRule ^(.*)_(.*).html$ artikel.php?titel=$1&id=$2
Wie bekomme ich es nun hin, das die alte umgeschriebene Datei umgeleitet wird per 301er. Also von:
artikel310.html

titel_der_meldung_310.html
Verfasst: 09.10.2007, 22:23
von matin
Code: Alles auswählen
RewriteRule ^artikel310\.html$ /titel_der_meldung_310.html [R=301,L]
Verfasst: 09.10.2007, 22:59
von w3news
Hat sich erledigt, hatte einen Flüchtigkeitsfehler drinne jetzt geht es!

Verfasst: 10.10.2007, 13:44
von w3news
So hab noch was vergessen:
Versuche gerade krampfhaft folgende Datei umzuleiten:
artikel.php?id=500
auf
artikel500.html
Die 500 soll dabei eine Variabel darstellen!
Das habe ich mal versucht:
Code: Alles auswählen
RewriteCond %{QUERY_STRING} ^id=([0-9+])$
RewriteRule ^(.*).php$ /news/artikel%1.html [R=301,L]
Funktioniert natürlich nicht, passiert überhaupt nichts, Datei wird normal aufgerufen, aber nicht umgeleitet!
Kann mir jemand sagen wo der Fehler ist?
Verfasst: 10.10.2007, 16:18
von matin
Code: Alles auswählen
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/artikel.php
RewriteCond %{QUERY_STRING} ^id=([0-9]+)
RewriteRule ^(.*)$ http://www.domain.de/news/artikel%1.html? [R=301,L]
aber in den richtigen ordner legen ...
Verfasst: 10.10.2007, 16:33
von w3news
Ne, funktioniert auch nicht, leitet immer noch nicht weiter, kommt aber auch kein Fehler.
Hier mal die Verzeichnisstruktur:
https://domain.de/news/artikel.php?id=500 -->
https://domain.de/news/artikel500.html
Die .htaccess liegt im News Ordner.
Vielleichts hilfts ja...
Verfasst: 10.10.2007, 16:38
von matin
... vielleicht kollidiert die rule mit einer anderen?
Verfasst: 10.10.2007, 16:44
von w3news
Auch ne Idee, hier die ganze .htaccess aus dem Ordner news:
Code: Alles auswählen
RewriteEngine On
RewriteCond %{HTTP_HOST} !^w3news\.de$ [NC]
RewriteRule ^(.*)$ http://w3news.de/news/$1 [L,R=301]
RewriteRule ^artikel911.html$ /news/artikel910.html [R=301,L]
RewriteRule ^artikel([0-9]+).html$ /news/artikel.php?id=$1
RewriteRule ^(.*)_(.*).html$ artikel.php?titel=$1&id=$2
RewriteRule ^bereich-(.*).html$ /news/index.php?bereich=$1
RewriteRule ^archiv/([0-9]+)/([A-Za-z]+)/$ archiv_monat.php?jahr=$1&monat=$2
RewriteRule ^archiv/([0-9]+)/([A-Za-z]+)/(.*)/$ archiv_tag.php?jahr=$1&monat=$2&tag_archiv=$3
RewriteRule ^(.*).html$ $1.php
Verfasst: 11.10.2007, 08:13
von matin
versuch mal
Code: Alles auswählen
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^(.*) http://www.domain.com/news/artikel%1.html? [L,R=301]
diese rule leitet alle dynamischen url's mit id=irgendwas auf /news/artikelirgendwas.html per 301 um. darunter muss dann noch die rule kommen, dass die artikelirgendwas.html die dynamische seite anzeigt
Verfasst: 11.10.2007, 11:59
von w3news
Hab ich so eingebaut:
Code: Alles auswählen
RewriteEngine On
RewriteCond %{HTTP_HOST} !^w3news\.de$ [NC]
RewriteRule ^(.*)$ http://w3news.de/news/$1 [L,R=301]
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^(.*) http://w3news.de/news/artikel%1.html? [L,R=301]
RewriteRule ^index.php$ /news/ [R=301,L]
RewriteRule ^artikel911.html$ /news/artikel910.html [R=301,L]
RewriteRule ^artikel([0-9]+).html$ /news/artikel.php?id=$1
RewriteRule ^(.*)_(.*).html$ artikel.php?titel=$1&id=$2
RewriteRule ^bereich-(.*).html$ /news/index.php?bereich=$1
RewriteRule ^archiv/([0-9]+)/([A-Za-z]+)/$ archiv_monat.php?jahr=$1&monat=$2
RewriteRule ^archiv/([0-9]+)/([A-Za-z]+)/(.*)/$ archiv_tag.php?jahr=$1&monat=$2&tag_archiv=$3
RewriteRule ^(.*).html$ $1.php
Beim Aufruf einer Datei, kommt aber anscheinend nur eine Endlosschleife

, vermute ich mal, da der Browser sich einen Wolf lädt, aber nichts passiert. Andere Dateien im Ordner werden korrekt aufgerufen.
Verfasst: 12.10.2007, 09:19
von matin
sorry, nun weiß ich auch nicht mehr weiter ... vielleicht kann dir jemand im modrewrite forum helfen:
https://www.modrewrite.de/foren/index.php
Verfasst: 12.10.2007, 13:06
von shadaik
w3news hat geschrieben:So hab noch was vergessen:
Versuche gerade krampfhaft folgende Datei umzuleiten:
artikel.php?id=500
auf
artikel500.html
Die 500 soll dabei eine Variabel darstellen!
Das habe ich mal versucht:
Code: Alles auswählen
RewriteCond %{QUERY_STRING} ^id=([0-9+])$
RewriteRule ^(.*).php$ /news/artikel%1.html [R=301,L]
Funktioniert natürlich nicht, passiert überhaupt nichts, Datei wird normal aufgerufen, aber nicht umgeleitet!
Kann mir jemand sagen wo der Fehler ist?
Das selbe hab ich die letzten zwei Tage auch versucht und bin dann auf eine php-Umleitung gewechselt, in meinem fall sieht die so aus:
Anfrage kommt an URL/review.php?titel=[Titel]
Dann geht es durch dieses Skript:
Code: Alles auswählen
<?php
$name = $_GET['titel'];
header("Location: http://www.spilmkritiken.de/kritiken/krtk-$name.html");
exit;
?>
und wird dadurch auf die entsprechende statische Seite umgeleitet.
Das ist die ganze datei, 127 Byte groß. Achja, der Seitenname muss natürlich geändert werden, auch wenn ich mich über die Besucher nicht beschweren würde
Aber wundern würde ich mich, wie beliebt meine 404er plötzlich ist.

Verfasst: 12.10.2007, 15:57
von Dracul
RewriteRule ^(.*).php$ /news/artikel%1.html
Sollte das % net ein $ sein ?
Verfasst: 12.10.2007, 18:02
von w3news
Sollte das % net ein $ sein ?
Also bei der Doku steht auch ein % Zeichen, weil auf die Variabel von der Regel vorher zurückgegriffen wird.
Und die Variante mit dem PHP- Header wollte ich eigentlich vermeiden, da es ja mit mod_rewrite definitiv geht, allerdings nicht bei mir...
