.htaccess RewriteEngine
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absolute pfade
beispiel
bild
code
datei
funktionieren
index
ordner
page
parameter
platzhalter
regelsatz
text
url
verweis
verzeichnis
vorkommen
weglassen
weiteren ordner
ziel
-
Hi
ich möchte meine URL per htaccess schöner gestalten. nur leider klappt das nicht wirklich.
Ich habe einen ordner mit einem weiteren Ordner drin und darin ist die Seite ink. .htaccess
Meine .htaccess sieht so aus:
RewriteEngine on RewriteRule ^ordner1/ordner2/([^/]+) ordner1/ordner2/index.php?page=$1 [NC]
Was mache ich da falsch? Ich habe ein ähnliches Beispiel gefunden und das etwas verändert, aber mein Browser sagt, er kann das Verzeichniss nicht finden, also scheint die .htaccess datei nicht richtig ausgeführt zu werden.
MFG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Der Platzhalter in einem neuzuschreibenen URL-Teil wird durch ein Zirkumflex (^) eingeleitet und durch ein Dollarzeichen ($) beendet. Der folgende Code sollte bei dir funktionieren:
RewriteEngine On RewriteRule ordner1/ordner2/^(.[^php])$ ordner1/ordner2/index.php?page=$1 [L]
Dieses kleine süße Dateichen muss in das Verzeichnis, in dem sich der ordner1 befindet. Sollte sich dieser nicht direkt im Home-Verzeichnis befinden, musst du die eine Zeile zum Beispiel so verändern, die htaccess kommt trotzdem in den Ordner, in dem sich ordner1 befindet, hier also in nocheiner.
RewriteRule ordner1/ordner2/^(.[^php])$ nocheiner/ordner1/ordner2/index.php?page=$1 [L]
Es kann auch daran gelegen haben, dass du alles weitergeleitet hast. Auch die index.php, auf die weitergeleitet wird. Das habe ich hier mit dem [^php] mal ausgeschaltet...
Ich hoffe, das funktioniert. Ansonsten einfach zurückschreiben...
Beitrag zuletzt geändert: 30.4.2011 19:30:06 von dermaik -
Vermutlich wird es nicht funktionieren, weil:
programtools schrieb:
Ich habe einen ordner mit einem weiteren Ordner drin und darin ist die Seite ink. .htaccess
Die .htaccess liegt also, wenn ich es richtig verstanden habe in ordner2.
Das vorgestellte Rewriting versucht jetzt, das Ziel im ordner ordner2/ordner1/ordner2 zu finden. Nicht verwunderlich, wenn das fehlschlägt.
Entweder also die Ordner beim Ziel weglassen oder nicht relativ weiterleiten ein / vor ordner1 sollte helfen (zumindest, wenn ordner1 im root der Domain steht).
FF -
programtools schrieb:
Allerdings habe ich nun das Vorkommen, dass zwar der text da ist, aber keine styles und Bilder angezeigt werden.
Das kann ich mir nur leider nicht erklären.
Das Problem ist durchaus erklärlich, wenn Du nur die Pfade geändert hast.
Dein Regelsatz ist halt so weit gefasst, dass er auch Dateien betrifft, die nicht umgeleitet werden sollten.
FF
Beitrag zuletzt geändert: 1.5.2011 15:03:30 von fatfreddy -
Achso, aber wie verweise ich auf die Dateien? Weil das geschieht doch in der index.php.
MFG -
programtools schrieb:
Achso, aber wie verweise ich auf die Dateien? Weil das geschieht doch in der index.php.
MFG
Erweitere einfach meine Liste mit den Ausnahme-Dateitypen, die nicht umgeleitet werden:
RewriteRule ordner1/ordner2/^(.[^php|^jpg|^gif|^png])$ ordner1/ordner2/index.php?page=$1 [L]
Das ^ bedeutet nicht und danach kommt die Dateiendung. -
okay...
und wenn ich die .htaccess nun in Ordner2 habe und ich möchte in der url ein weiteres verzeichniss (das nicht existiert) anhängen und danach den parameter . html
also so:
RewriteRule page3/(.[^php|^jpg|^gif|^png]).html$ index.php?page=page3¶meter=$1
Aber jetzt fehlt wieder style & co.
Ich verstehe das nicht ganz. Ist alles irgendwie deutlich komplizierter als man denkt.
MFG -
programtools schrieb:
okay...
und wenn ich die .htaccess nun in Ordner2 habe und ich möchte in der url ein weiteres verzeichniss (das nicht existiert) anhängen und danach den parameter . html
also so:
RewriteRule page3/(.[^php|^jpg|^gif|^png]).html$ index.php?page=page3¶meter=$1
Aber jetzt fehlt wieder style & co.
Ich verstehe das nicht ganz. Ist alles irgendwie deutlich komplizierter als man denkt.
MFG
Wenn man mit mod_rewrite werkelt, sollte man absolute Pfade und keine relativen verwenden. Dann passiert sowas auch nicht ;)
Beitrag zuletzt geändert: 4.5.2011 3:04:15 von fabo -
wo genau soll ich nun absolute Pfade verwenden?
Das ist halt nur etwas doof, wenn ich es dann auf meinem localhost teste und hinterher alles ändern muss für den echten server.
MFG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage