stinkluth
Goto Top

Mit htaccess URL vereinfachen

Mit htaccess URL vereinfachen z.b. "domain.de/index.php?action=main" zu "domain.de/main"

Hallo liebe Forumnutzer,

ich betreibe eine Seite, welche die Inhalte via URL aufruft. Z.B.:

index.php = Startseite
index.php?action=gbook = Gästebuch
index.php?action=fotoalbum = Fotoalbum startseite

manchmal kommt noch eine zweite "bedingung" in der url z.B.:

index.php?action=fotoalbum&albumID=1.

Soweit funktioniert alles. Da ich die URL nicht ganz so berauschend finde, wollte ich mal fragen wie ich die URL verändern kann zu

domain.de/gbook
domain.de/fotoalbum
domain.de/fotoalbum/1
usw.

Wär cool wenn mir wer mit htaccess helfen kann da ich da nicht so viel Kenntnisse habe.

Ich hoffe es ist verständlich.

Gruß Stin

Content-Key: 164153

Url: https://administrator.de/contentid/164153

Printed on: April 19, 2024 at 22:04 o'clock

Member: Arano
Arano Apr 07, 2011 at 14:11:34 (UTC)
Goto Top
Hallo Stin.

über die .htaccess-Datei läuft das zwar auch aber für das was du vorhast brauchst du das Modul: "mod_rewrite" face-smile
Die .htaccess-Datei ist hier nur unser "Mittel zum Zwecke" und dient als Konfigurationsdatei für den Server bzw. des Moduls.

Klar kann man die Helfen, was hast du den schon ?

~Arano
Member: stinkluth
stinkluth Apr 07, 2011 at 14:13:24 (UTC)
Goto Top
Leider nichts. Habe das mal versucht, ist etwas her aber hab das da nicht hinbekommen face-sad
Also mod_rewrite hab ich dabei.
Wär gut wenn du mir da helfen könntestface-smile
Member: Arano
Arano Apr 07, 2011 at 14:37:37 (UTC)
Goto Top
Hi

Leider nichts
Das sind jetzt nicht die besten Voraussetzungen...

Vorher noch etwas anders:
Deine oben genannten URL Schema, sind das alle ?
Ich bin nur deswegen etwas verwundert weil in der Regel bei beiden (GB und Fotos) noch eine seitenweise Ansicht mögliche ist was noch einen weiteren Parameter z.B: "page=5" entsprechen würde...
Hast du die vergessen oder willst du die nicht in den "schöneren" URL haben und weiterhin als Parameter an die URL anhängen !?

Auf der anderen Seite mag es auch reichen wenn man die Hauptseiten, also immer der "action" Parameter als URL/Dateinamen verwendet. Fragt sich nur was dann mit der "albumId" geschehen soll...


Zum helfen sind hier sicher viele bereit, nur die Arbeit für andere machen....
Was machen wir denn nun ?


~Arano
Member: stinkluth
stinkluth Apr 07, 2011 at 15:55:32 (UTC)
Goto Top
Hi Arano,

ich habe mir bisschen was herausgearbeitet aber es klappt noch nicht ganz.
Vielleicht weist du weiter.

ich habe folgendes in der htaccess

RewriteEngine on
RewriteBase /test/
RewriteRule ^inhalt/(.*)/(.*)/? index.php?action=$1&site=$2

domain.de/test ist der ordner, deswegen das base=test

wenn ich folgende url eingebe kommt folgendes raus
domain.de/test/inhalt/test/
domain.de/test/index.php?action=test&site=

domain.de/test/inhalt/test/test2/
domain.de/test/index.php?action=test&site=test2

soweit ist das auch ganz gut.
Problem ist nur: Wie kann ich das inhalt wegmachen? also dass man nur noch domain.de/test eingeben kann, iwie geht das nicht?

Gruß Stin
Member: Arano
Arano Apr 07, 2011 at 17:23:12 (UTC)
Goto Top
Hi

ahh, das sieht doch schon besser aus, jetzt ist auch etwas da wobei man Hilfe leisten kann ;)

Wie kann ich das inhalt wegmachen?
Einfach raus löschen ?
RewriteRule ^(.*)/(.*)/? index.php?action=$1&site=$2

Was passiert eigentlich wenn du nun __domain.tld/test__ bzw. __domain.tld/inhalt/test__ - beide jeweils ohne Slash am Ende! - aufrufst !?


~Arano
Member: stinkluth
stinkluth Apr 07, 2011 at 17:42:25 (UTC)
Goto Top
HIm

also hatte immer Fehler wenn ich das inhalt wegließ.
Habe jetzt gerade einfach mal
RewriteBase /test/
weggelassen und siehe da es geht.

wenn ich nur die domain schreibe passiert gar nichts bzw. die index.php ganz normal.

domain.de/test/1/2 = index.php?action=1&site=2

domain.de/test/1/ = index.php?action=1&site=

domain.de/test/1 = FEHLER aber nicht schlimm.

weist du zufällig wie ich noch einen dritten paramenter einbauen kann?
Also sodass bei
domain.de/test/1/
keine Fehler bekomme?

Gruß
Member: stinkluth
stinkluth Apr 07, 2011 at 18:52:07 (UTC)
Goto Top
Hallo,

jetzt muss ich aber noch wissen, wie ich meinen "Images"-Ordner von meiner Regel ausschließen kann.
Der soll ja die Bilder laden und nich die Parameter übergeben *grins*

Weiß wer wie das geht? Da finde ich irgendwie keine richtige Lösung.

Gruß
Member: dog
dog Apr 07, 2011 at 21:43:10 (UTC)
Goto Top
URL Rewriting erfordert immer zwei Komponenten:
  • Etwas das die URL zurückschreibt
  • Etwas, das die URL erzeugt

Solange dein Script aber immer noch klassische URLs erzeugt nützt auch Rewrite nichts.

Der soll ja die Bilder laden und nich die Parameter übergeben *grins*

RewriteCond %{REQUEST_FILENAME} !-f
Gilt jeweils für die darauffolgende RewriteRule