Probleme zwei Ordner aus URL rauszunehmen per .htaccess


Jan-Frederik Stieler

Monsterator
Moderator
Hi,
ich bekomms einfach nicht hin das die dämliche Ordnerstruktur nicht auch in der URL abgebildet wird.
Die URL sieht z.B. so aus: das soll zu https://www.foobar.de/foo werden.
Momentan habe bin ich an diesem Stand RewriteRule ^(content\/.*\/)$ $1 [L,R=301] aber das funktioniert nicht.

Ich verstehe es doch richtig das ich in meinen PHP-Scripten weiterhin content/foo/foo benutze aber nur in der URlL-bar wird dann stattdessen /foo angezeigt, oder?

Vielleicht gibts ja jemanden der mehr Erfahrung mit der htaccess und rewriterules hat als ich?

Grüße
 

ComFreek

Mod | @comfreek
Moderator
Ich habe mit .htaccess nicht so viel Erfahrung drin, geschweige denn positive Erfahrung :)
Google doch mal "htaccess debug rewrite rule". Da habe ich How to debug Apache mod_rewrite gefunden, was ganz vielversprechend aussieht.

Aus dem Bauch heraus würde ich sagen, dass du du die Rewrite Rule für genau die falsche Richtung erstellt hast. Du möchtest, dass wenn Browser www.foobar.de/foo anfragen, dein Server das intern anstößt, was bei www.foobar.de/content/foo/foo ausgeliefert werden würde im (unkonfigurierten) Normalbetrieb. Ergo müsstest du so etwas wie
RewriteRule ^foo$ content/$1/$1 [L,R=301] haben. Aber jetzt wundert mich, warum da 301 für den HTTP Statuscode 301 steht. Also wird das doch dem Browser mitgeteilt?
Möglicherweise kann man Rewrite Rules für zwei Zwecke benutzen: a) URLs gegenüber Clients (Browser, Menschen) vereinfachen und b) URLs deprecaten und neue nutzen. Ich habe bei meiner Antwort gerade nur über a) nachgedacht. Was möchtest du tun?
 

Jan-Frederik Stieler

Monsterator
Moderator
Hi,
Danke für Deine Antwort.
Jo dann hab ich das wohl falsch herum geschrieben. Das mit dem 301 hatte ich da hingeschrieben weil ich schon einen dauerhaften Verweis haben wollte.
Ich Versuch jetzt mal die Anweisung umzudrehen und hoffe das ich dann das gewünschte bekomme.

gruß
 

Neue Beiträge