Seite 1 von 1

Url umschreiben

Verfasst: 18.04.2012, 11:03
von Unifex
Ich benötige einmal Hilfe bei einer URL Umschreibung mod_rewrite.

Die Url´s sehen momentan so aus:

https://www.meinedomain.de/abc.php
https://www.meinedomain.de/abc.php/gege ... s-ist-doof
https://www.meinedomain.de/abc.php/gege ... ist-anders

usw.

Ich würde die gerne so umgeschrieben haben:

https://www.meinedomain.de/abc/
https://www.meinedomain.de/abc/gegensta ... -doof.html
https://www.meinedomain.de/abc/gegensta ... nders.html

Für Experten sicher eine leichte Aufgabe. Was muss ich in die .htaccess eintragen?

Verfasst:
von

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

Re: Url umschreiben

Verfasst: 18.04.2012, 11:59
von Melegrian
Unifex hat geschrieben:Die Url´s sehen momentan so aus:

https://www.meinedomain.de/abc.php
https://www.meinedomain.de/abc.php/gege ... s-ist-doof
Ist nur eine Vermutung, doch die sehen für mich schon wie umgeschrieben aus. Sind das URLs, die vom Script so generiert oder in der htaccess bereits so umgeschrieben werden? Und wie sehen die eigentlich aus? In etwa so?

"https://www.meinedomain.de/abc.php?para ... -doof&id=5"

Verfasst: 18.04.2012, 12:15
von Unifex
Die kommen vom Skript so. In der htaccess ist noch nichts umgeschrieben.

Verfasst:
von

Verfasst: 18.04.2012, 13:00
von Melegrian
Alles ungetestet!

Nur in eine Richtung:

Code: Alles auswählen

RewriteEngine on

RewriteRule ^abc/([a-zA-Z]+)/([0-9]+)-([a-zA-Z_-]+)\.html$ /abc.php/$1/$2-$3 [L] 
In beide Richtungen (hier könnten Fehler enthalten sein):

Code: Alles auswählen

RewriteEngine on

RewriteRule ^abc/([a-zA-Z]+)/([0-9]+)-([a-zA-Z_-]+)\.html$ /abc.php/$1/$2-$3?nur=so [QSA,L]
RewriteCond %{QUERY_STRING} !^nur=so$
RewriteRule ^abc\.php/([a-zA-Z]+)/([0-9]+)-([a-zA-Z_-]+)$ /abc/$1/$2-$3.html? [R=301,L] 

Verfasst: 20.04.2012, 10:13
von Unifex
Vielen Dank aber das funktionierte jetzt leider noch nicht so. Immerhin liegen die URL´s jetzt noch in einem besseren Format vor:

Der Code gibt die jetzt so aus.
https://www.meinedomain.de/abc.php/gege ... nders.html

Ich müsste also jetzt nur noch wissen, wie ich abc.php umschreibe in eine anderes virtuelles Verzeichnis so, dass die URL dann z.B. so ausschaut:

https://www.meinedomain.de/abc/gegensta ... nders.html

Ich konnte zwar abc.php umschreiben in /abc/ aber leider geht mir dann immer der Rest dahinter verloren :)

Für einen Profi wie sie hier sind, sicher ein Klacks, das das zu lösen.

Verfasst: 20.04.2012, 11:16
von Melegrian
Unifex hat geschrieben:Der Code gibt die jetzt so aus.
https://www.meinedomain.de/abc.php/gege ... nders.html
Melegrian hat geschrieben:

Code: Alles auswählen

RewriteEngine on

RewriteRule ^abc/([a-zA-Z]+)/([0-9]+)-([a-zA-Z_-]+)\.html$ /abc.php/$1/$2-$3 [L] 
Was mit der Regel schon einmal gar nicht passieren dürfte, weil im ^Muster$ bei abc/ zwischen dem abc und dem / kein Punkt und keine Extension enthalten ist. Wenn in der htaccess noch nichts anderes enthalten ist, so kommst Du eventuell am einfachsten weg, in dem Du die Leute befragst, die sich mit dem Script auskennen.

Edit: Die zweite Regel in beiden Richtungen könnte Fehler enthalten, das schrieb ich, die erste sollte hingegen im "Normalfall" funktionieren. Was ich vergas anzumerken, die URLs ändern sich bei der einfachen Regel nicht von allein, Du musst die URLs auch so aufrufen und im Script die Seitenlinks anpassen.

Verfasst: 20.04.2012, 11:54
von Unifex
Nene, die URL wurde nicht geändert durch rewrite sondern durch Programmierung.

Jetzt muss ich nur noch das letzte kleine Stück irgendwie umschreiben :)

Verfasst: 20.04.2012, 12:20
von Melegrian

Code: Alles auswählen

RewriteEngine on

RewriteRule ^abc/(.*)$ /abc.php/$1 [L]
Dann sollten die sich so aufrufen lassen:

"https://www.meinedomain.de/abc/gegensta ... nders.html"

Verfasst: 20.04.2012, 15:53
von Unifex
Nein, funktioniert leider nicht.

Verfasst: 20.04.2012, 16:10
von Unifex
Also um genauer zu sein. abc.php lässt sich jetzt ebenfalls mit https://www.meinedomain.de/abc/ aufrufen. Aber eben auch noch unter abc.php.
Die Verlinkungen von abc.php sind ebenfalls noch so:

https://www.meinedomain.de/abc.php/gege ... nders.html

Dicht dran aber noch nicht ganz gelöst. Hat noch jemand eine Idee?

Verfasst: 20.04.2012, 18:31
von Melegrian
Unifex hat geschrieben:Die Verlinkungen von abc.php sind ebenfalls noch so:
Melegrian hat geschrieben:Was ich vergas anzumerken, die URLs ändern sich bei der einfachen Regel nicht von allein, Du musst die URLs auch so aufrufen und im Script die Seitenlinks anpassen.
Die Seitenlinks musst Du bei beiden Regeln im Script anpassen, auch die Regel in beiden Richtungen ändert nur die aufgerufenen URLs, schreibt aber nicht die Links im Script um.
Unifex hat geschrieben:Dicht dran aber noch nicht ganz gelöst. Hat noch jemand eine Idee?
Melegrian hat geschrieben: In beide Richtungen (hier könnten Fehler enthalten sein):

Code: Alles auswählen

RewriteEngine on

RewriteRule ^abc/([a-zA-Z]+)/([0-9]+)-([a-zA-Z_-]+)\.html$ /abc.php/$1/$2-$3?nur=so [QSA,L]
RewriteCond %{QUERY_STRING} !^nur=so$
RewriteRule ^abc\.php/([a-zA-Z]+)/([0-9]+)-([a-zA-Z_-]+)$ /abc/$1/$2-$3.html? [R=301,L] 
Ja, passe einfach die Regel in beiden Richtungen an, vielleicht so:

Code: Alles auswählen

RewriteEngine on

RewriteRule ^abc/(.*)$ /abc.php/$1?nur=so [QSA,L]
RewriteCond %{QUERY_STRING} !^nur=so$
RewriteRule ^abc\.php/(.*)$ /abc/$1 [R=301,L] 
Und wenn die noch nicht richtig flutscht, so findest Du auf dieser Seite noch genügend weitere Beispiele, wie eine Regel für beide Richtungen aussehen könnte (Variante 5 und 6):
https://suchmaschinentricks.at/tipps-tr ... write.html

Verfasst: 20.04.2012, 19:22
von Unifex
Danke