Htaccess: Weiterleitung bzw. Übergabe Parameter

filament

Erfahrenes Mitglied
Hallo Leute,

ich habe da mal ein Problem: Programmiere gerade eine neue Community Seite. Diese soll weitestgehend responsive werden. Ich möchte aber gezielt nicht auf das Flex-Box Modell in CSS setzen, sondern auf das normale Block System. Ich werde meine Webseite daher schon responsive gestalten und die Boxen an den Viewport anpassen.

Der Nachteil dieser Geschichte ist allerdings, dass ich etwas unflexibler in der Anordnung der Boxen bin. Das möchte ich nun umgehen, indem ich noch ein zweites Layout gezielt für Tablets / Smartphones erstelle, wo die Anordnung der Elemente etc. anders ist.

Mein Plan war nun, dass ich einfach im oberen Teil der Desktop-Version einen Link anbiete: "Zur mobilen Version".

Die Verlinkung soll dabei einfach domain.de/mobile/ sein. Ich möchte allerdings die mobile Seite nicht neu programmieren, sondern lediglich in meiner Webseite eine Abfrage starten nach dem Parameter mobile. Sodass ich einfach in der index.php dann per if -> else die richtigen Dateien per include einbinde. (Auf der mobilen Seite wird natürlich auch auf die Desktop Version verlinkt!)

Ist das überhaupt eine Frage von htaccess? Oder muss ich lediglich die URL mittels PHP in Parameter zerlegen und prüfen ob mobile drin steckt?

Zu sagen ist noch, dass ich meine URL Struktur so anlegen will, dass alle Links nicht mittels index.php?ziel=... aufgerufen werden, sondern mittels pfadangaben. Sprich domain.de/kontakt/ domain.de/faq/ etc.

Mein Ansatzpunkt in der htaccess ist bisher Folgender:

PHP:
Rewrite Engine On

RewriteBase /

RewriteRule ^(.+)\.php $1/ [R=301]

Danke für die Hilfe!
 
Doch :) , schau her:
Code:
Rewrite Engine On
RewriteBase /
RewriteRule ^\?(.*)$ index.php?$1 [QSA,L]
# Beispiel URL : http://xy.z/mehrParameter/a/b => http://xy.z/index.php?ziel=mehrParameter&eins=a&zwei=b
RewriteRule ^mehrParameter/(.*)/(.*)/$ ./?ziel=mehrParameter&eins=$1&zwei=$2 [NC,L]
# Beispiel URL : http://xy.z/faq/&get=a&b=c => http://xy.z/index.php?ziel=faq&get=a&b=c
RewriteRule ^faq/(.*)$ ./?ziel=faq$1 [NC,L]
# Beispiel URL : http://xy.z/seite/55 => http://xy.z/index.php?ziel=seite&id=55
RewriteRule ^seite/(.*)$ ./?ziel=seite&id=$1 [NC,L]
# Beispiel URL : http://xy.z/seite => http://xy.z/index.php?ziel=seite   (evt. für Startseite, mit id indivduelle Seite)
RewriteRule ^seite ./?s=17 [NC,L]
# Beispiel URL : http://xy.z/kontakt/  ODER  http://xy.z/kontakt  => http://xy.z/index.php?ziel=kontakt
RewriteRule ^kontakt(/|) ./?ziel=kontakt [NC,L]


#
#    ALTERNATIV:
#    (ungetestet)
#


Rewrite Engine On
RewriteBase /
# Beispiel URL 1 : http://xy.z/kontakt  => http://xy.z/index.php?ziel=kontakt
# Beispiel URL 1 : http://xy.z/faq/  => http://xy.z/index.php?ziel=faq/
RewriteRule ^(.*)$ index.php?ziel=$1 [NC,L]
 
Danke für deine Hilfe! Ich hatte bisher weniger Zeit, schaue mir das die Tage aber mal genau an. Eventuell werde ich mich doch nochmal mit dem Thema Flex Box Modell auseinandersetzen. Vielleicht ist es doch einfacher damit zu arbeiten.
 
Hey Leute,

habe das Layout nun doch per Flex Box geregelt was eine Weiterleitung an die mobile Seite entbehrlich macht.

Ich habe mich jetzt aber noch zusätzlich dazu entschieden meine Links und Weiterleitungen via Datenbank zu regeln.

Deswegen würde ich gern nochmal nachfragen, wie ich per htaccess sicherstellen kann, dass entsprechend weitergeleitet wird.

Ich hätte gern das ich Beiträge wie oben schon erwähnt mit domain.de/Kontakt/ ansprechen kann. Der User müsste jetzt aber per htaccess weitergeleitet werden an die index.php mit Übergabe der ID aus der Datenbank.

Sprich meine Datenbank wird dann so aussehen: Zumindest ein Feld ID und ein Feld Name des Links, mehr ist optional. Die IDs werden unique vergeben, sprich jede nur einmal.

Hoffe dass ihr verstanden habt, was ich genau bezwecken will.

Wie stelle ich das denn an?

*Update*
Ganz vergessen: Die URLs sollen natürlich über domain.de/NamedesLinks/ aufgerufen werden können. (Hier wird der Name aus der Datenbank genommen)
 
Zuletzt bearbeitet:
RewriteRule ^kontakt(/|) ./?ziel=kontakt [NC,L]

Das habe ich gestern mal versucht. Beim Aufruf von domain.de/kontakt/ kommt eine 404 Fehlermeldung :(

*UPDATE*

PHP:
RewriteEngine on
RewriteRule ^\.htaccess$ - [F]

RewriteBase /

RewriteRule ^(.*)/(.*)/$ \./index.php?cat=$1&ziel=$2 [QSA]
RewriteRule ^(.*)/$ \./index.php?ziel=$1 [NC,L]

Klappt wunderbar mit der Übergabe der Variablen.

Leider hat sich jetzt als Nebenprodukt eingestellt, dass meine Dateien wie CSS oder Bilder nicht mehr geladen werden. Weil ich mich ja jetzt inoffiziell in domain.de/test/ oder domain.de/test/hallo/ befinde.
 
Zuletzt bearbeitet:
Zurück