htaccess RewriteRule
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
aufruf
beispiel
code
download
endeffekt
generiert http
http
idee
kategorie
klammern
optimieren
regel
regeln
url
vergessen
verschiedenen kategorien
versuchen
vollwertige url
zweite parameter
-
Hallo Zusammen,
Ich versuche zurzeit das Downloadsuchverhalten zu optimieren mittels htaccess.
Beispiel:
Zur Zeit sieht eine vollwertige URL so aus:
http://marvinkleinmusic.de/Get_File.php?downloadname=Moonlight%20Sonata%20III.%20Presto%20Agitato&action=view&app=Magic%20Piano&instrument=Grand%20Piano
(Ohne die %20)
Nun habe ich es schon so eingestellt mit htaccess, dass ich zum passenden Download komme wenn ich jetzt folgendes z.B. eingebe:http://marvinkleinmusic.de/Downloads/All of Me
htaccess dazu:
RewriteEngine On RewriteRule ^\.htaccess$ - [F] RewriteRule ^Downloads/([^/]*)$ Get_File.php?downloadname=$1&action=view [L]
Mein Problem dabei ist jetzt jedoch das Lieder zum Teil auch 2 mal vorkommen, jedoch in verschiedenen Kategorien. Deswegen muss die Regel noch erweitert werden, sodass es wie folgt aussieht:
http://marvinkleinmusic.de/downloads/Magic Piano/All of Me
Dazu muss beachtet werden, das es eine Datei namens downloads.php auf dem Server gibt welche eine Kategorie auswahl beinhaltet. Deswegen soll der zweite Parameter gleichzeitig als Kategorie ersetzung dienen.
Beispiel:
Wenn ich jetzt http://marvinkleinmusic.de/downloads/Magic Piano aufrufe soll die Kategorie geöffnent werden : marvinkleinmusic.de/downloads?kategorie=Magic Piano
Das selbe gilt sowohl für "Sing Jams" und "Piano Genius".
EDIT: Ich habe noch vergessen, das für die Kategorien eine Seitenangabe benötigt wird. Wenn diese fehlt ist seite=1
Das sieht dann ohne htaccess etwa so aus:
marvinkleinmusic.de/downloads?kategorie=Magic Piano&seite=2
Das benötige ich jetzt genau:
RewriteRule's die wie folgt umleiten: (Das was in den Klammern steht kann auch anderere Inhalt sein)
http://marvinkleinmusic.de/downloads/(Magic Piano) -> http://marvinkleinmusic.de/downloads.php?kategorie=(Magic Piano) http://marvinkleinmusic.de/downloads/(Magic Piano)/(2) -> http://marvinkleinmusic.de/downloads.php?kategorie=(Magic Piano)&seite=(2) http://marvinkleinmusic.de/downloads/(Magic Piano)/(All of Me) -> http://marvinkleinmusic.de/Get_File.php?downloadname=(All of Me)&app=(Magic Piano)
EDIT ENDE
Zu guter letzt sollen per htaccess in dieses URL's die leerzeichen durch %20 ersetzt werden.
Hat vielleicht jemand eine Idee? Ich lese mich derzeit noch in Reguläre Ausdrücke ein und habe sogut wie keinen Plan davon.
Liebe Grüße und vielen dank für jede Hilfe! :)
Beitrag zuletzt geändert: 8.1.2015 22:48:17 von marvinkleinmusic -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Als erstes musst du dir Gedanken machen, in welcher Reihenfolge du die Regeln aufstellst. Die Regel mit der Zahl würde ich an die erste Stelle schreiben, da diese die 3. ausschließt.
Im Endeffekt würde ich diese wie folgt aufstellen:
RewriteEngine On RewriteRule ^Downloads/([^/]*)/([0-9]+)$ /downloads.php?kategorie=$1&seite=$2 [L] RewriteRule ^Downloads/([^/]*)/([^/]+)$ /Get_File.php?downloadname=$1&app=$2 [L] RewriteRule ^Downloads/([^/]*)$ /downloads.php?kategorie=$1 [L]
-
Hallo nochmal!
Ich habe ganz vergessen eine Sache mit einzubeziehen. Zwar lassen sich die Downloads/Kategorien zwar problemlos dank Thomas anzeigen, allerdings habe ich vergessen das ganze auch noch für den Download zu übernehmen.
Das ganze sieht dann etwa ohne htaccess so aus:
http://marvinkleinmusic.de/Get_File.php?downloadname=All%20of%20Me&key=YoamKzKtOq&action=download
Der key wird immer zufällig generiert und ist immer 10 Zeichen lang.
Die action zum downloaden ist download.
Ich benötige dort noch eine Regel in htaccess die aus der URL oben folgenden Link generiert:
http://marvinkleinmusic.de/downloads/(Magic Piano)/(All of Me)/(key10zeichen)/download
Ich versuche mal ein wenig rum.
LG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage