• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mod_rewrie

fiedel

Mitglied
Hallo Community,

ich komm beim besten Willen nicht drauf, wie ich es machen soll...

Mit Hilfe von mod_rewrite möchte ich nämlich diese URL:
http://www.friedrich-schultheiss.de/index.php?p=about

in diese URL transformieren:
http://www.friedrich-schultheiss.de/about

Mein aktueller Code dafür sieht so aus:
Code:
RewriteEngine on
RewriteRule ^/(.*)$ index.php?p=$1 [L,NC,QSA]
Ich wäre euch sehr dankbar, wenn ihr mir auf die Sprünge helfen würdet!

Gruß,
fiedel
 
Zuletzt bearbeitet:
Werbung:
Versuchs mal mit
Code:
RewriteRule  index.php?page=(.*) /$1 [L,QSA]  //Ungetestet
Ich würde jedoch den anderen Weg nehmen und
http://www.friedrich-schultheiss.de/about
intern in
http://www.friedrich-schultheiss.de/index.php?p=about
umwandeln, so brauchst du die URL nicht mehr zu ändern. Allerdings musst du dann vermutlich alle Links bei dir ändern.
Code:
RewriteCond 	%{REQUEST_FILENAME} 	!-f
RewriteCond 	%{REQUEST_FILENAME} 	!-d
RewriteRule 	^(.*)$  index.php?page=$1  [L,QSA]
 
Werbung:
Der Slash nach ^ ist zuviel.
Das hatte ich auch erst gedacht, aber dann hat es mit und ohne Slash nicht funktioniert...

Versuchs mal mit
Code:
RewriteRule  index.php?page=(.*) /$1 [L,QSA]  //Ungetestet
Ich würde jedoch den anderen Weg nehmen und
Über... - Webdesign Testgebiet
intern in
Über... - Webdesign Testgebiet
umwandeln, so brauchst du die URL nicht mehr zu ändern. Allerdings musst du dann vermutlich alle Links bei dir ändern.
Code:
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteRule     ^(.*)$  index.php?page=$1  [L,QSA]
Okay, die erste Variante hat nicht geklappt, aber die zweite! :wink:
Da wär ich nie draufgekommen, gibt es denn ein anständiges Buch, das du mir empfehlen würdest, damit ich nicht immer nachfragen muss?
 
Werbung:
Hi,

hab genau das gleiche Problem und mit dem Beispiel funktionierts auch

Code:
RewriteEngine on
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteRule     ^(.*)$  index.php?navigation=$1  [L,QSA]

Code:
http://www.friedrich-schultheiss.de/about

Was muss ich machen, dass das hier auch funktioniert?

Code:
http://www.friedrich-schultheiss.de/about/

oder sogar das hier?

Code:
http://www.friedrich-schultheiss.de/about/me

Vielen Dank,
Gruß KY
 
Du kannst es mit
PHP:
explode('/', $_REQUEST['navigation']);
versuchen, dadurch werden alle Ordner und die Datei in ein Array gespeichert.

Es gibt sicher auch eine Lösung mit mod_rewrite, aber so fit bin ich dadrin noch nicht. Sonst auch mal in dem Forum nachfragen.
 
Das hatte ich mal so (oder ähnlich) gemacht:
Code:
RewriteRule ^([^/]+)/?([^/]+)?/?([^/]+)?/?$ index.php?a=$1&b=$2&c=$3
Sieht seltsam aus, sollte aber funktionieren. Wenn es keine zweite oder dritte Ebene gibt, werden die Parameter leer übergeben (?a=about&b=&c=)
 
Werbung:
Das Problem ist leider, das ich nicht nur zwei ebenen hab sondern unter umständen sehr viele!

Gibts keine Möglichkeit, dass alles überhalb meiner index.php in die navigations variable übergeben wird?

Gruß KY
 
Wird es doch, deswegen kannst du sie ja auch mit explode in Ordner und Datei splitten.
 
Hi zusammen,

hab mich leider etwas schlecht ausgedrückt.

Das Problem ist, wenn ich
Code:
http://www.friedrich-schultheiss.de/about/me
eingebe, dann kommt immer nur Object nicht gefunden.
Es wird erst gar nicht auf meine index.php umgeleitet!

Gruß KY
 
Werbung:
Ist ja auch eigentlich logisch, weil dann auf
Code:
[URL]http://www.friedrich-schultheiss.de/index.php?navigation=about/me[/URL]
umgeschrieben wird, sodass man im Verzeichnis "me" landet (vermute ich zumindest). Ich wüsste allerdings gerade nicht, wie man das umgehen könnte.
 
Gibt es vll ne möglichkeit alle "/" in der $-Variable durch ein anderes Zeichen zu ersetzten?

Gruß KY
 
Werbung:
Zurück
Oben