Mod_Rewrite Verzeichniss auf .php

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
terminatorx120
Mitglied
Beiträge: 214
Registriert: 19.02.2007 22:25
Wohnort: Barmstedt
Kontaktdaten:

Mod_Rewrite Verzeichniss auf .php

Beitrag von terminatorx120 »

Hallo,
ich möchte es schaffen, dass man in der URL ein Verzeichniss angibt und dann durch mod_rewrite der .htaccess eine .php Datei ausgeführt wird.

Genau genommen soll es so aussehen:

URL:

Code: Alles auswählen

http://www.keepgaming.de/video/52

zu:

Code: Alles auswählen

http://www.keepgaming.de/video.php?id=52

Ich habe natürlich vorher gründlich gegooglet und eigentlich kann ich auch ein wenig mit Mod_Rewrite umgehen, php dateien zu html machen un Co., aber das mit dem Verzeichniss will nicht sorecht funktionieren.
Ich hatte es schon beinahe geschafft, aber da wurde das template nicht geladen und er dachte wirklich er wäre in dem Verzeichniss und wollte auch alle links auf z.B. /video/video.php?id=52 schicken.

Kennt sich jemand aus?

bisheriger Versuch:

Code: Alles auswählen

RewriteEngine  on 
RewriteRule ^http://www\.keepgaming\.de/video/$ http://www.keepgaming.de/video.php [L]

RewriteRule /video/(.*) /video.php?id=$1 [PT]
Ich benutze phpBB3.

edit: PS: könnte mir jemand noch einmal den Inhalt der normalen .htacces sagen, ich habe sie dummerweise überschrieben. Vielen Dank
MfG
TerminatorX120
http://www.KeepGaming.de
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Das ist nicht ganz so einfach. Der Browser "denkt" er befindet sich im Verzeichnis /video/ und schickt daher alle relativen Anfragen so ab, dass sie sich auf dieses Verzeichnis beziehen. Du kannst nun entweder alle relativen Pfade in der Seite umbauen, oder du fügst eine Art Catchall ein. Hierzu musst du die Rewrite Rule noch ein wenig spezifizieren (was sowieso sinnvoll ist .* ist nicht besonders effizient):

Code: Alles auswählen

RewriteRule /video/$ /video.php [L]
RewriteRule /video/([0-9]+)$ /video.php?id=$1 [L]
RewriteRule /video/(.*) /$1 [L]
Für die normale .htaccess könntest du dir einfach einen Blick in eines der Downloadpakete gönnen ;)
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
terminatorx120
Mitglied
Beiträge: 214
Registriert: 19.02.2007 22:25
Wohnort: Barmstedt
Kontaktdaten:

Beitrag von terminatorx120 »

Code: Alles auswählen

Not Found

The requested URL /video/2 was not found on this server.
?

Code: Alles auswählen

options +FollowSymLinks
RewriteEngine  on 
RewriteRule /video/$ /video.php [L]
RewriteRule /video/([0-9]+)$ /video.php?id=$1 [L]
RewriteRule /video/(.*) /$1 [L] 
MfG
TerminatorX120
http://www.KeepGaming.de
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

hm.

Vielleicht doch besser so:

Code: Alles auswählen

options +FollowSymLinks
RewriteEngine  on
RewriteBase /
RewriteRule ^video/$ /video.php [L]
RewriteRule ^video/([0-9]+)$ /video.php?id=$1 [L]
RewriteRule ^video/(.*) /$1 [L]
Wenn sich das alles auf irgend einen Unterordner auf den Server beziehen soll (also z.b. forum/video/2 oder so), dann solltest du die RewriteBase entsprechend setzen auf den realen Ordner.

Als Bsp mal ein funktionierender Ausschnitt aus meiner .htaccess:

Code: Alles auswählen

RewriteEngine On
Options +FollowSymLinks
RewriteBase /RGN_Homepage/

RewriteRule ^special/([^/]*)/news/([0-9]+)\.html 	/RGN_Homepage/index.php?section=special&special=$1&area=news_detail&newsid=$2 [NC,L]
RewriteRule ^special/([^/]*)/news/?				/RGN_Homepage/special/$1/ [R=301]
 
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
terminatorx120
Mitglied
Beiträge: 214
Registriert: 19.02.2007 22:25
Wohnort: Barmstedt
Kontaktdaten:

Beitrag von terminatorx120 »

SUPER!
Funktioniert!!

Vielen Dank!

Hier der Beweis:
http://www.keepgaming.de/video/52
MfG
TerminatorX120
http://www.KeepGaming.de
Antworten

Zurück zu „Coding & Technik“