.htaccess rewrite

07/22/2014 20:41 Mr.Tr33#1
Moin,

mir kam vorhin ein Gedanke, ich weiß aber nicht ob dieser überhaupt in der Art überhaupt umsetzbar ist :D

Erst einmal habe ich folgenden Code:
Code:
RewriteEngine on 
RewriteRule \. - [L]
RewriteRule ^([^/]+)/?$ index.php?$1 [L,NC]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?$1=$2 [L,NC]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?$1=$2&$3 [L,NC]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?$1=$2&$3=$4 [L,NC]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?$1=$2&$3=$4&$5 [L,NC]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?$1=$2&$3=$4&$5=$6 [L,NC]
Damit muss ich aber für bei $_GET die Variable und den Wert setzen, damit es die nächste Variable erkennt.

Gibt es eine Möglichkeit den Wert zu überspringen?
So würde es ohne der .htaccess aussehen:
Quote:
[Only registered and activated users can see links. Click Here To Register...]p3&p4=a4
Und so mit:
Quote:
[Only registered and activated users can see links. Click Here To Register...]p3/p4/a4
Wenn nicht, würde es dann gehen, wenn ein bestimmtes Zeichen bei der Variable (hier p3) drangehangen wird, dass es den Wert dann überspringt? Also so z.B.
Quote:
[Only registered and activated users can see links. Click Here To Register...]p3~/p4/a4
MfG,
Mr.Tr33
07/23/2014 01:14 KoKsPfLaNzE#2
wieso machst du das so komplex? leite doch einfach alle anfragen bei dennen die datei nicht vorhanden sind an die index.php weiter und definier dir routen in php da kannst das um einiges besser steuern, meiner meinung. zumindest laeuft das bei allen groeßeren sachen so
07/23/2014 15:20 turk55#3
You are trying to hard, keep the first parameter and simply explode the url.
07/23/2014 17:12 Mr.Tr33#4
Quote:
Originally Posted by KoKsPfLaNzE View Post
wieso machst du das so komplex? leite doch einfach alle anfragen bei dennen die datei nicht vorhanden sind an die index.php weiter und definier dir routen in php da kannst das um einiges besser steuern, meiner meinung. zumindest laeuft das bei allen groeßeren sachen so
Verstehe ich nicht so ganz, wie meinst du das?
Beispiele wären klasse :)
Quote:
Originally Posted by turk55 View Post
You are trying to hard, keep the first parameter and simply explode the url.
I don't get what you're trying to explain. How about a few examples? :)
07/23/2014 19:24 KoKsPfLaNzE#5
alles an die index weiterleiten, wenn es die datei net gibt un wenn es kein style, js oder ein bildchen ist.
PHP Code:
RewriteEngine On

RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_URI} !(\.css|\.js|\.jpg|\.png|\.gif)$ [NC]
RewriteRule ^.*$ index.php [NC,L
danach kommst ja an die url im php un kannst die dann auf verschiedene routen checken, damit steuerst dann deine controller un die actions an.
07/23/2014 20:06 Mr.Tr33#6
Das wollte ich doch gar nicht.
Ich will mein Link nur anders anzeigen lassen, sodass ich nicht immer ein value bei $_GET brauche sondern auch hin und wieder nur ein key (oben eig. gut genug erklärt, es kamen ja keine Verständnisfragen).
07/25/2014 15:30 turk55#7
Quote:
Originally Posted by Mr.Tr33 View Post
I don't get what you're trying to explain. How about a few examples? :)
Let's say the url is "website.com/index.php?page=news/15/test" without the htaccess rewrite rule, otherwise "website.com/news/15/test" but nevermind that.

So a simple explode will look like this:
$url = explode("/", $_GET["page"]);

$url is an array now where it splitted the string "news/15/test" using the slash (/) as delimiter
the value of $url[0] is news
the value of $url[1] is 15
the value of $url[2] is test

Oh and you should check always check those parameters for dots (.) and slashes (/). Otherwise hackers might end up using an RFI Injection.
07/25/2014 19:56 Mr.Tr33#8
That's not what I want >.>

I want to tell the URL a GET with a key and a value but sometimes I don't have a value so I want to ignore the value part.

Example:
website.com/index.php?key=value&key2=value2&key3&key4=value4
website.com/key/value/key2/value2/key3/key4/value4
key3 has no value and with my code (in the first post) "key4" would be the value for value3

My question is, how can I say that key3 has no value so that I can jump over the value3?
07/25/2014 20:24 マルセル#9
Insert any character and ask for it in your php script, I don't really understand the problem.