Forum » Server-Side scripting » .htacces probleem
Berichten: 155
avatar
Offline Stuur privebericht
hallo,

Ik wil graag met onderstaande htacces zorgen dat link.nl/index.php?a=profile&x=2 het volgende wordt: link.nl/profile/2
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
RewriteEngine On

#RewriteCond %{REQUEST_FILENAME} !^(.*.(php|php3|css|php?.*|html|htm))|(/(images|cgi-bin|logs|upload|Test|)/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d
RewriteRule 
^(.*)$ index.php?a=$[L]
RewriteRule ^(.*)/(.*)$ index.php?a=$1&x=$[L]


order allow,deny

allow from all

kan iemand mij helpen?
08-06-2011 13:33
Dit topic is 187 keer bekeken door 38 verschillende leden
Reacties op: ".htacces probleem"
1
Berichten: 1751
avatar
Offline Stuur privébericht
Het enige dat daarvoor nodig is:

Code | Selecteer Alles
minimaliseren
1
Options MultiViews
08-06-2011 13:34
Berichten: 155
avatar
Offline Stuur privébericht
Werkt niet
08-06-2011 13:49
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Een ^ geeft aan bij het begin van de uri aan.
Een . staat voor elk mogelijk karakter.
Een * betekend 0 of meer.
Een $ geeft aan bij het einde van de uri aan.
[L] zorgt er voor dat als deze rule matched de andere genegeerd worden.

^(.*)$ matches dus ALLES.
Je komt dus NOOIT bij de volgende RewriteRule.

Oplossing: verander de volgorde, de meest specifieke rewrite rules gaan eerder dan minder specifieke rules.

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
RewriteEngine On

#RewriteCond %{REQUEST_FILENAME} !^(.*.(php|php3|css|php?.*|html|htm))|(/(images|cgi-bin|logs|upload|Test|)/.*)$

# Do not rewrite existing files
RewriteCond %{REQUEST_FILENAME} -[OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule 
.* - [L]

RewriteRule ^([^/]+)/([^/]+)$ index.php?a=$1&x=$[L]
RewriteRule ^([^/]+)$ index.php?a=$[L]


order allow,deny

allow from all

[^/] matches alles behalve een /
+ betekend een of meer (* was 0 of meer, weet je nog?)
08-06-2011 15:05
Berichten: 1751
avatar
Offline Stuur privébericht
Nee je moet dan wel met multiviews gaan werken Met $_GET gaat het niet werken
08-06-2011 15:05
Berichten: 155
avatar
Offline Stuur privébericht
hoe werkt dat multiviews dan?
08-06-2011 15:25
Informatica Student
Berichten: 1406
avatar
Online Stuur privébericht
Beetje Google kan geen kwaad Mattie. Eerste hit:
http://www.sitemasters.be/tutorials/1/1/47/PHP/MultiViews_met_PHP
08-06-2011 15:28
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Ik vind het volgende persoonlijk toch iets fijner dan MultiViews

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
# Turn on URL rewriting
RewriteEngine On

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$[PT]


En dan met $_SERVER['PATH_INFO'] aan de slag
08-06-2011 15:41
Reageer op: ".htacces probleem"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden