Seite 1 von 1

SEO freundliche URL`s mit mod_rewrite?

Verfasst: 25.01.2007, 17:45
von hansito
Hallo,

ich versuche jetzt schon seit einigen Tagen meine dynamischen URL`s suchmaschinenfreundlich darstellen zu lassen.
Über Abakus-Internet-Marketing habe ich folgende Seite mit einem komfortablen URL-Rewriting-Tool gefunden:
https://www.webconfs.com/url-rewriting-tool.php.

Gebe ich meine dynamische URL wie folgt ein: https://www.domain_1.de/datei.php?name=variable
erzeugt mir das Tool diesen Code:

Options +FollowSymLinks
RewriteEngine on
RewriteRule datei-name-(.*)\.htm$ datei.php?name=$1

Dieser Code soll in die .htaccess Datei im entsprechenden Verzeichnis der Domain eingefügt werden.

Da ich dort bereits früher eine .htaccess angelegt habe (zwecks Domainumleitung), habe ich diese einfach nur
erweitert.

Die .htaccess Datei sieht also jetzt so aus:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.domain_2\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain_3\.de$
RewriteRule ^(.*)$ https://www.domain_1.de/$1 [L,R=301]

RewriteRule datei-name-(.*)\.htm$ datei.php?name=$1


Leider funktioniert das so nicht. Die Domain wird immer noch dynamisch angezeigt. Hat einer `ne Idee, was ich
falsch gemacht habe? Übrigens, datei.php befindet sich wie die .htaccess auf der obersten Ebene des Verzeichnisses.

Ich würde mich sehr freuen, wenn mir diesbezüglich jemand helfen könnte.

Gruß Volker Hansen

Verfasst:
von

Verfasst: 25.01.2007, 18:59
von ole1210
Ruf probeweise einfach mal www.domain.de/name.html auf. Dann verstehst du, was du gemacht hast.

Jetzt müssen noch alle Links (Menü etc.) geändert werden, sowie die alten seiten per 301 umgeleitet.

Verfasst: 26.01.2007, 09:44
von hansito
Ich habe probeweise einmal folgende Adresse aufgerufen:
https://www.domain_1.de/datei-name-variable.html

Ergebnis: "Die angegebene Seite konnte nicht gefunden werden."

Ich habe das Gefühl, dass ich irgendetwas grundlegend falsch mache. Der Code aus dem Generator allein scheint nicht die Lösung zu sein.

Verfasst:
von

Verfasst: 26.01.2007, 10:01
von chrizz
also ich hatte auch desöfteren mal probleme mit der htaccess....hab dann einfach mal ausprobiert und geschaut was üpassiert wenn ich den einen oder anderen befehl raussschmeiße. bin dann letzlich darauf gekommen, dass das followsymlinks bei mir irgendeinen fehler verursacht hat....warum auch immer.
ahc und was ich grad sehe, wo ich mir aber auch nciht wirklich sicher bin :/
muss vor das "datei-name" nicht noch ein ^ ? Also so:
RewriteRule ^datei-name-(.*)\.htm$ datei.php?name=$1

cheers!

Verfasst: 26.01.2007, 10:29
von hansito
habe es jetzt auch noch einmal mit und ohne followsymlinks sowie mit und ohne ^ probiert. Ich habe bisher schon etliche Variationen ausprobiert, leider ohne Erfolg.
Deshalb auch meine Frage ob der Code in meiner .htaccess grundlegend richtig ist oder ob ich einen gewaltigen Denkfehler mache.

Verfasst: 26.01.2007, 11:35
von Gagget
Also hin und wieder nutze ich ja auch ModRewrite ;). Fehlt da nicht erstmal eine RewriteRule für %{REQUEST_FILENAME} ? So einfach dahin gesetzt gilt die Rule doch noch für %{HTTP_HOST}, oder ?

Code: Alles auswählen

RewriteCond %{REQUEST_FILENAME}  !-f
RewriteRule  ./datei-name-(.*)\.htm$ datei.php?name=$1
Ist jetzt nur mal so ausm Kopf ... aber so würd ich das machen.
das leitet zum Beispiel "/datei-name-test.htm" nach "/datei.php?name=test" (bzw sollte es)

Hoffe ich konnte helfen
Gruß Gagget

Verfasst: 26.01.2007, 11:52
von hansito
Ok, mit
RewriteRule ^datei-name-(.*)\.html$ /datei.php?name=$1 [L,NC]
scheint es zu funktionieren. D.h. es wird die richtige Seite angezeigt, wenn ich www.domain_1.de/datei-name-variable.html aufrufe.
Jetzt müssen noch alle Links (Menü etc.) geändert werden, sowie die alten seiten per 301 umgeleitet.
Ok, die Linkänderungen sind kein Problem aber wie leite ich z.B. die Seite www.domain_1.de/datei.php?name=variable
nach
www.domain_1.de/datei-name-variable.html um?

Hat einer den passenden Code für mich?

Verfasst: 27.01.2007, 18:46
von bloddy newbie
Da du Domain_2 und Domain_3 ja bereits zuvor auf Domain_1 schickst, müssen wir Domain_1 hier nicht mehr berücksichtigen. Bitte beachte, dass die SUMA freundliche Regel oberhalb der 301er Umleitung (also von *.php?blabla nach Suma freundlich) stehen muß. Das L steht dabei für "Last Rule" und htaccess wird bei einem Match auf diese Rule die Suche nach einer weiteren zutreffenden Regeln abbrechen.

Code: Alles auswählen

RewriteCond %{REQUEST_FILENAME}  !-f
RewriteRule  ./datei-name-(.*)\.htm$ $1.php?$2=$3 [L]

RewriteCond %{QUERY_STRING} ^name\=(.*)$ 
RewriteRule datei\.php$ datei-name-%1.htm [R=301]
Falls du das Ganze etwas dynamischer benötigst:

Code: Alles auswählen

RewriteCond %{REQUEST_FILENAME}  !-f
RewriteRule  ./([^-]+)-([^-]+)-(.*)\.htm$ $1.php?$2=$1 [L]

RewriteCond %{QUERY_STRING} ^([^=]+)\=(.*)$ 
RewriteRule ([^/]+)\.php$ $1-%1-%2.htm [R=301]
Bitteschön 8)
BN