• Lorduh
  • Registratie: Februari 2008
  • Laatst online: 07:21
Hallo,

Ik zit intussen al z'n 30 minuten te pleuteren :p. Ik wil enkele RewriteRules om mijn pagina-links wat fraaier te maken. Ik ben bezig met mijn eigen forum. Al mijn bestanden staat in de map forum. Ik heb momenteel al twee werkende RewriteRules namelijk eentje die /forum/categorie/hoofd/1 genereert, wat ik dus wil. hoofd slaagt op $_GET['f'] en 1 op $_GET['c'] verder heb ik dus ook gewoon /forum/categorie.

Beide RewriteRules wijzen dus door naar /forum/categorie.php... Die ene doet dus /forum/categorie.php?f=hoofd&c=1 . Nu ik probeer nog een volgende erbij te krijgen die /forum/categorie/hoofd/1/sub/1 zou moeten uitkomen, en dat die dan voor php /forum/categorie.php?f=hoofd&c=1&m=sub&s=1 uitkomt, maar dat lukt me nu bepaald niet echt.

Ik heb al ene generator geprobeerd maar dan krijg ik zaken waarbij hij die f en m etc ook weergeeft...

Mijn rules:

RewriteRule ^categorie/(.*)/(.*)/$ /forum/categorie.php?f=$1&c=$2
RewriteRule ^categorie/(.*)/(.*)$ /forum/categorie.php?f=$1&c=$2

RewriteRule ^categorie/(.*)/(.*)/(.*)/(.*)/$ /forum/categorie.php?f=$1&c=$2&m=$3&s=$4
RewriteRule ^categorie/(.*)/(.*)/(.*)/(.*)$ /forum/categorie.php?f=$1&c=$2&m=$3&s=$4

RewriteRule ^categorie/$ /forum/categorie.php
RewriteRule ^categorie$ /forum/categorie.php

Het gaat dus om:

RewriteRule ^categorie/(.*)/(.*)/(.*)/(.*)/$ /forum/categorie.php?f=$1&c=$2&m=$3&s=$4
RewriteRule ^categorie/(.*)/(.*)/(.*)/(.*)$ /forum/categorie.php?f=$1&c=$2&m=$3&s=$4

Dat niet wil lukken. Weet iemand raad?
(graag een woordje uitleg als je me helpt, zodanig ik mijn fout begrijp)

Mvg,
Lorduh.

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 21:08

RM-rf

1 2 3 4 5 7 6 8 9

vind (.) niet ook een slash?... in dat geval vind de eerste rule al sowieso de uri met vier 'sub-ordners':
bv
code:
1
/categorie/variabele1/variabele2/variabele3/variabele4/

wordt dan al snel:
code:
1
/forum/categorie.php?f=variabele1&c=variabele2/variabele3/variabele4


Ik zou overigens gewoon ervoor kiezen het gehele path door te verwijzen naar één GET-variabele en deze via PHP uit te lezen in name/value-pairs, via iets als $path.split( "/" ), en de betreffende array te loopen

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 07:21
RM-rf schreef op dinsdag 01 april 2008 @ 09:52:
vind (.) niet ook een slash?... in dat geval vind de eerste rule al sowieso de uri met vier 'sub-ordners':
bv
code:
1
/categorie/variabele1/variabele2/variabele3/variabele4/

wordt dan al snel:
code:
1
/forum/categorie.php?f=variabele1&c=variabele2/variabele3/variabele4


Ik zou overigens gewoon ervoor kiezen het gehele path door te verwijzen naar één GET-variabele en deze via PHP uit te lezen in name/value-pairs, via iets als $path.split( "/" ), en de betreffende array te loopen
Wat bedoel je nou precies ? Dat vna split zal ik trouwens eens uitzoeken ;)

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:07

TeeDee

CQB 241

code:
1
RewriteRule ^(.*)/$ /handlevars.php?url=$1

Op handlevars.php vervolgens een $_GET['url'] en vervolgens splitten op /. Zoiets :)

credits aan RM-rf ;)

[ Voor 11% gewijzigd door TeeDee op 01-04-2008 10:29 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 07:21
TeeDee schreef op dinsdag 01 april 2008 @ 10:22:
code:
1
RewriteRule ^(.*)/$ /handlevars.php?url=$1

Op handlevars.php vervolgens een $_GET['url'] en vervolgens splitten op /. Zoiets :)
Ok dankje!

Ik ga even wat gamen, als het niet lukt hoor je het wel:)

Nogmaals dank voor de goede informatie :)




Zo ik begrijp nu perfect wat je bedoelt. Alleen hoe verkrijg ik de URL die in de browser staat. Ik dacht eerst met $_SERVER['PHP_SELF'], maar logisch dat geeft uiteraard gewoon categorie.php?... Ik vermoed dat hier wel wat aan te doen is, maar ik weet niet het juiste functietje :(.




Ik heb nu:

$url = $_SERVER['REQUEST_URI'];
list($http, $directory, $fakedir, $hoofdcat, $hcat_id, $subcat, $scat_id) = split('/', $url);
echo 'w1: ' . $hoofdcat . ' w1-1: ' . $hcat_id . ' w2: ' . $subcat . ' w2-2w: ' . $scat_id;

Waarschijnlijk kan dit eenvoudiger maarja... http://, die stop ik in $http, en heb ik niet nodig, $directory, die komt dan overeen met forum wat ik eveneens niet nodig heb, $fakedir is de directory categorie die ik in htacces heb gezet alweer ook niet nodig, en dan ja beginnen de interessante waarden. Ik kan in principe hiermee mij doel bereiken, maar ik vermoed dat er nog iets makkelijker is... Iemand ene idee?




Ok, ik denk dat ik nu pas door heb wat je bedoelt... http://domein/forum/categorie.php?url=hoofd/1/sub/1

Nou ik heb dit staan in men htaccess bestandanje:

RewriteEngine On

RewriteRule ^categorie(.*)/$ /forum/categorie.php?url=$1

Nou wanneer ik http://www.domein.be/forum/categorie/hoofd/1/sub/1 probeer dan zegt ie not found... Iemand ene ideetje alweer :$ ?

[ Voor 73% gewijzigd door Lorduh op 01-04-2008 13:47 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:07

TeeDee

CQB 241

<base href="http://domein.be/"> :?
PHP:
1
2
3
4
5
6
7
/*
*code is pseudo / gemixt...
*/
$url = $_GET['url'];
// split $url op / (zoals RM-rf zegt) en loop dan door die array collection heen.
$array_url = $url.split("/");
print_array($array_url);

offtopic:
mijn php is uitermate slecht, maar het lijkt me dat dit wel duidelijk is.

[ Voor 17% gewijzigd door TeeDee op 01-04-2008 14:02 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 07:21
TeeDee schreef op dinsdag 01 april 2008 @ 14:01:
<base href="http://domein.be/"> :?
PHP:
1
2
3
4
5
6
7
/*
*code is pseudo / gemixt...
*/
$url = $_GET['url'];
// split $url op / (zoals RM-rf zegt) en loop dan door die array collection heen.
$array_url = $url.split("/");
print_array($array_url);

offtopic:
mijn php is uitermate slecht, maar het lijkt me dat dit wel duidelijk is.
Daar gaat het hier toch niet over... Zo ver was ik nu ook wel al. Het gaat erover dat ik in htaccess niet krijg wat ik wil. Ik wil gewoon dat ik via http://www.mijndomein.nl/forum/hoofd/1/sub/1 http://www.mijndomein.nl/...rie.php?url=hoofd/1/sub/1 kan bereiken.

(En wat je hier vna code geeft, zover was ik ook al ;))

[ Voor 3% gewijzigd door Lorduh op 01-04-2008 14:13 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:07

TeeDee

CQB 241

Wat zegt je httpd log? Heb je nu wel of niet een <base href=""> tag in je html staan?

[ Voor 58% gewijzigd door TeeDee op 01-04-2008 14:54 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 07:21
TeeDee schreef op dinsdag 01 april 2008 @ 14:53:
Wat zegt je httpd log? Heb je nu wel of niet een <base href=""> tag in je html staan?
Ja heb ik...

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:07

TeeDee

CQB 241

Nogmaals: Wat zegt je httpd log?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 07:21
TeeDee schreef op dinsdag 01 april 2008 @ 15:57:
Nogmaals: Wat zegt je httpd log?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[01-Apr-2008 08:49:32] PHP Warning:  include(inc_connect_mysql.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/nice2you/public_html/forum/categorie.php on line 2
[01-Apr-2008 08:49:32] PHP Warning:  include(inc_connect_mysql.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/nice2you/public_html/forum/categorie.php on line 2
[01-Apr-2008 08:49:32] PHP Warning:  include() [<a href='function.include'>function.include</a>]: Failed opening 'inc_connect_mysql.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/nice2you/public_html/forum/categorie.php on line 2
[01-Apr-2008 08:49:32] PHP Warning:  include(functions.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/nice2you/public_html/forum/categorie.php on line 3
[01-Apr-2008 08:49:32] PHP Warning:  include(functions.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/nice2you/public_html/forum/categorie.php on line 3
[01-Apr-2008 08:49:32] PHP Warning:  include() [<a href='function.include'>function.include</a>]: Failed opening 'functions.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/nice2you/public_html/forum/categorie.php on line 3
[01-Apr-2008 08:49:32] PHP Warning:  include(overall_header.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/nice2you/public_html/forum/categorie.php on line 4
[01-Apr-2008 08:49:32] PHP Warning:  include(overall_header.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/nice2you/public_html/forum/categorie.php on line 4
[01-Apr-2008 08:49:32] PHP Warning:  include() [<a href='function.include'>function.include</a>]: Failed opening 'overall_header.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/nice2you/public_html/forum/categorie.php on line 4
[01-Apr-2008 08:49:32] PHP Warning:  mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Access denied for user 'nice2you'@'localhost' (using password: NO) in /home/nice2you/public_html/forum/categorie.php on line 17
[01-Apr-2008 08:49:32] PHP Warning:  mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: A link to the server could not be established in /home/nice2you/public_html/forum/categorie.php on line 17
[01-Apr-2008 08:49:32] PHP Fatal error:  Call to undefined function  dood() in /home/nice2you/public_html/forum/categorie.php on line 19
[01-Apr-2008 09:06:57] PHP Parse error:  syntax error, unexpected '>' in /home/nice2you/public_html/forum/categorie.php on line 12
[01-Apr-2008 09:07:20] PHP Parse error:  syntax error, unexpected '>' in /home/nice2you/public_html/forum/categorie.php on line 12
[01-Apr-2008 09:07:21] PHP Parse error:  syntax error, unexpected '>' in /home/nice2you/public_html/forum/categorie.php on line 12


code:
1
2
3
4
5
Not Found

The requested URL /hoofd/1/sub/1/ was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Bedoel je dit ?

[ Voor 3% gewijzigd door Lorduh op 01-04-2008 16:01 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:07

TeeDee

CQB 241

Melp, ik bedoel je access log.

Hoe ziet je RewriteRule er nu exact uit?
Ik heb al mijn Rewrites (in IIRF weliswaar) geprefixed met een /.
Lorduh schreef op dinsdag 01 april 2008 @ 16:01:
[...]
Enig idee waar ik die vind :? Ik gebruik cpanel?
Geen idee. Kan je dat niet aan je hosting vragen of ff Googlen?

[ Voor 95% gewijzigd door TeeDee op 01-04-2008 16:07 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 07:21
TeeDee schreef op dinsdag 01 april 2008 @ 16:00:
Melp, ik bedoel je access log.
Enig idee waar ik die vind :? Ik gebruik cpanel?

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 07:21
Ik heb nu zo goed als alles hoe ik het wil. Het enige probleem is alleen nog dat forum/index/cat/1/sub/1 als ik dit doe, ik niet krijg wat ik wil maar als ik forum/index/cat/1/sub/1/, doe dan krijg ik dat wel.

De code die ik nu gebruik is

code:
1
2
3
4
5
6
7
RewriteEngine On

RewriteRule ^index/$ /forum/index.php
RewriteRule ^index$ /forum/index.php

RewriteRule ^index/(.*)/ index.php?url=$1
RewriteRule ^index/(.*) index.php?url=$1


Een idee wat ik nog fout doe:?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:07

TeeDee

CQB 241

Staan hier bruikbare tips tussen?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 18:21

krvabo

MATERIALISE!

Nou weet ik niet precies wat er mis gaat bij je laatste vraag, maar die vraag uit de TS is waarschijnlijk zeer simpel op te lossen.
Al die oplossingen met exploden of splitten op / zijn onzin als je je .htaccess goed opsteld.
Je maakt gebruik van .*, wat inderdaad inhoudt dat / ook meegenomen wordt. De volgorde in een .htaccess maakt dan uit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RewriteRule ^categorie/(.*)/(.*)/(.*)/(.*)/$ /forum/categorie.php?f=$1&c=$2&m=$3&s=$4 [L]
RewriteRule ^categorie/(.*)/(.*)/(.*)/(.*)$ /forum/categorie.php?f=$1&c=$2&m=$3&s=$4 [L]

RewriteRule ^categorie/(.*)/(.*)/(.*)/$ /forum/categorie.php?f=$1&c=$2&m=$3 [L]
RewriteRule ^categorie/(.*)/(.*)/(.*)$ /forum/categorie.php?f=$1&c=$2&m=$3 [L]

RewriteRule ^categorie/(.*)/(.*)/$ /forum/categorie.php?f=$1&c=$2 [L]
RewriteRule ^categorie/(.*)/(.*)$ /forum/categorie.php?f=$1&c=$2 [L]

RewriteRule ^categorie/(.*)/$ /forum/categorie.php?f=$1 [L]
RewriteRule ^categorie/(.*)$ /forum/categorie.php?f=$1 [L]

RewriteRule ^categorie/$ /forum/categorie.php [L]
RewriteRule ^categorie$ /forum/categorie.php [L]


Maak ook gebruik dus van de switches/modes/tags/hoejehetwilnoemen van de rules :)
Zo zou het moeten werken.

[edit]Al is het beter om met een minder rigoreuze regex te werken zoals [a-Z] of [0-9] ;)

[ Voor 3% gewijzigd door krvabo op 01-04-2008 21:12 ]

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 07:21
krvabo schreef op dinsdag 01 april 2008 @ 21:10:
Nou weet ik niet precies wat er mis gaat bij je laatste vraag, maar die vraag uit de TS is waarschijnlijk zeer simpel op te lossen.
Al die oplossingen met exploden of splitten op / zijn onzin als je je .htaccess goed opsteld.
Je maakt gebruik van .*, wat inderdaad inhoudt dat / ook meegenomen wordt. De volgorde in een .htaccess maakt dan uit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RewriteRule ^categorie/(.*)/(.*)/(.*)/(.*)/$ /forum/categorie.php?f=$1&c=$2&m=$3&s=$4 [L]
RewriteRule ^categorie/(.*)/(.*)/(.*)/(.*)$ /forum/categorie.php?f=$1&c=$2&m=$3&s=$4 [L]

RewriteRule ^categorie/(.*)/(.*)/(.*)/$ /forum/categorie.php?f=$1&c=$2&m=$3 [L]
RewriteRule ^categorie/(.*)/(.*)/(.*)$ /forum/categorie.php?f=$1&c=$2&m=$3 [L]

RewriteRule ^categorie/(.*)/(.*)/$ /forum/categorie.php?f=$1&c=$2 [L]
RewriteRule ^categorie/(.*)/(.*)$ /forum/categorie.php?f=$1&c=$2 [L]

RewriteRule ^categorie/(.*)/$ /forum/categorie.php?f=$1 [L]
RewriteRule ^categorie/(.*)$ /forum/categorie.php?f=$1 [L]

RewriteRule ^categorie/$ /forum/categorie.php [L]
RewriteRule ^categorie$ /forum/categorie.php [L]


Maak ook gebruik dus van de switches/modes/tags/hoejehetwilnoemen van de rules :)
Zo zou het moeten werken.

[edit]Al is het beter om met een minder rigoreuze regex te werken zoals [a-Z] of [0-9] ;)
Hallo,

Je begint nu over $f, $m etc., die heb ik al niet meer laten meespelen hoor. Het gaat nu echt over mijn vorige postbericht. (Aan het begin van dit topic heb je weinig of niets meer). Ik heb het hier dus nu duidelijk dat die ene / het verschil nu maakt, wat ik uiteraard niet wel.
Pagina: 1