Toon posts:

[Apache/.htaccess] hoe url.com/var1/var2/var3 naar 1 file?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een zeer mooi webhosting systeem, alles online editen. Nou heb ik voor het systeem iets nodig dat zorgt als ik naar http://users.sitenaam.net/admin/variable1/variable2
heen ga dat hij dan http://users.sitenaam.net...=variable1&var2=variable2
van maakt. Ik ben al zover dat ik 1 variable kan doorgeven, dat doe ik met deze .htaccess:
code:
1
2
RewriteEngine On
RewriteRule ^([^.\/]+)/?$ index.php?var1=$1&%{QUERY_STRING}


Nou kan ik dit al met php doen, dat is niet zo moeilijk te maken, hiervoor heb ik op ccmod gebruik gemaakt voor $REQUEST_URI met het volgende script:

PHP:
1
$a = explode("/", $REQUEST_URI);


Alleen bij het gebruik van PHP moet je dus index.php/var1/var2/var3 ingeven, ik wil nou geheel af van de file, die moet hij uitzichzelf inlezen, daarom dacht ik aan de .hraccess .
Ik weet dat ik gebruik moet maken van de regex, alleen kan daar nooit echt wijs uit komen.

Eerst dacht ik iets als dit:
code:
1
2
3
RewriteEngine On
RewriteRule ^([^.\/]+)/?$^([^.\/]+)/?$ index.php?var1=$1&%{QUERY_STRING}&va
r2=$2&%{QUERY_STRING}

alleen dit werkt niet echt. Wat o wat doe ik fout?

[ Voor 2% gewijzigd door Verwijderd op 24-11-2002 21:54 . Reden: enter vanwege layout vern**king ]


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Ik zoek zelf net zoiets (is misschien ook een idee voor je, want ietsje netter). Ik heb het alleen nog steeds niet gevonden.

Ik wil namelijk graag dat http://sub.domein.nl/troep/blah in feite gewoon verwijst naar http://sub.domein.nl/index.php/troep/blah. Als je dat eenmaal hebt is het namelijk erg makkelijk om met behulp van een explode() en de PATH_INFO variabele een mooie array van argumenten te verkrijgen.

Ik heb alleen geen idee, hoe ik dit kan verwezenlijken.

Rustacean


Verwijderd

Topicstarter
Manuzhai schreef op 24 november 2002 @ 22:14:
Ik zoek zelf net zoiets (is misschien ook een idee voor je, want ietsje netter). Ik heb het alleen nog steeds niet gevonden.

Ik wil namelijk graag dat http://sub.domein.nl/troep/blah in feite gewoon verwijst naar http://sub.domein.nl/index.php/troep/blah. Als je dat eenmaal hebt is het namelijk erg makkelijk om met behulp van een explode() en de PATH_INFO variabele een mooie array van argumenten te verkrijgen.

Ik heb alleen geen idee, hoe ik dit kan verwezenlijken.
Dit heb ik ook geprobeert, alleen het grote probleem is dat hij denkt dat het een directory is ipv een variable, dus daarom moet je iets veranderen in de .htaccess file alleen wat?

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

hier lees ik:
The effect of MultiViews is as follows: if the server receives a request for /some/dir/foo, if /some/dir has MultiViews enabled, and /some/dir/foo does not exist, then the server reads the directory looking for files named foo.*, and effectively fakes up a type map which names all those files, assigning them the same media types and content-encodings it would have if the client had asked for one of them by name. It then chooses the best match to the client's requirements.

Kortom: Options +Multiviews in je .htaccess file.

En er zijn al zoveel /14 topics over geweest dat zelfs de React search ze had gevonden denk ik :)

[ Voor 1% gewijzigd door CyberSnooP op 24-11-2002 23:16 . Reden: 't was een rml ]

|_____vakje______|


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Het handigst/flexibelst is gewoon MultiViews aanzetten en in php je $_SERVER['PATH_INFO'] uit te lezen.
Deze kan je dan ook ala /var/waarde/etc specificeren als je dat leuker vindt :)

Verwijderd

Topicstarter
ACM schreef op 24 November 2002 @ 23:18:
Het handigst/flexibelst is gewoon MultiViews aanzetten en in php je $_SERVER['PATH_INFO'] uit te lezen.
Deze kan je dan ook ala /var/waarde/etc specificeren als je dat leuker vindt :)
htaccess:
code:
1
2
3
Options +Multiviews

ErrorDocument 404 ../err404.php


http://users.site.net/admin/a <= werkt niet
http://users.site.net/admin <= zet er index.php achter, dit wou ik dus zeker voorkomen.


htaccess:
code:
1
2
3
4
RewriteEngine On
RewriteRule ^([^.\/]+)/?$ index.php?action=$1&%{QUERY_STRING}

ErrorDocument 404 ../err404.php

http://users.site.net/admin/a <= werkt
http://users.site.net/admin/a/a <= werkt niet

htaccess:
code:
1
2
3
4
5
Options +Multiviews
RewriteEngine On
RewriteRule ^([^.\/]+)/?$ index.php?action=$1&%{QUERY_STRING}

ErrorDocument 404 ../err404.php

http://users.site.net/admin/a <= werkt
http://users.site.net/admin/a/a <= werkt niet

index.php bevat allertijden:
PHP:
1
2
3
<?PHP
echo $_SERVER['PATH_INFO'];
?>


wat doe ik nou fout, ik kijk ergens overheen denk ik.

[edit]
even voor de duiderlijkheid: users is een bestaand subdomain, admin is de directory waar ik de .htacces+index.php in upload.

[ Voor 9% gewijzigd door Verwijderd op 24-11-2002 23:33 ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Een andere manier is trouwens een custom 404 page te gebruiken in die dir en er bijv verder geen files te hebben staan.
Zodat er altijd een 404 gegeven wordt en je 404-page dus elke request af kan handelen.

Ik weet niet precies wat je wilt bereiken :)

Verwijderd

Topicstarter
ACM schreef op 24 November 2002 @ 23:37:
Een andere manier is trouwens een custom 404 page te gebruiken in die dir en er bijv verder geen files te hebben staan.
Zodat er altijd een 404 gegeven wordt en je 404-page dus elke request af kan handelen.

Ik weet niet precies wat je wilt bereiken :)
Nou ik ben dus bezig met een gebruikersysteem waar ik gebruikers kan toevoegen voor gratis webhosting(doe ik alleen voor vrienden/kennisen), hiervoor moet een wysiwyg editor komen zodat ze hun layout kunnen beheren.

nou heb ik al dit: http://users.digiskin.net/admin (user:KingOfDos pass:1234, toch niets boeiends).

Nou wil ik maken dat een gebruiker zijn layout kan veranderen, eerst kunnen ze kiezen voor 'Frames', 'Basic' en 'Made4U'. Basic is dus gewoon frameloos, frames zijn frames(echt? ;) ) en Made4U zijn voorgemaakte layouts.
dit wil ik via een url doen als /admin/layout/stap/1 ofzoiets.
Hierna krijgen ze de keuze hoe ze het willen(behalve voor basic), frames krijgen ze keuze uit 6 verschillende framepage's, Made4U krijgen ze iets van 8 layouts gemaakt door mij.

De Layout's kan je dus aanpassen zoals de gebruiker wil, ik heb een aantal standaard fucties ingeboud, o.a. nieuws(met reacites), gastenboek, gallery, games(met score opslaan, die worden voor _alle_ sites bij elkaar gegooit, meer tegenspelers dus) en meer van ditsoort dingetjes, ook kan een gebruiker costume page's maken, met dingen die ze er zelf in willen.

een layout bestaat uit het volgende:

code:
1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
<title>$usertitlehere - SSHS by KingOfDos</title>
</head>
<body>
<!-- vanaf hier kan user zelf editen -->
<a href="**urlniews**">Nieuws</a> | <a href="**urlgames**">Games</a>
<hr>
**inhoud**
<!-- nietmeer zelf editen -->
</body></html>


Ik vervang dus de **...** door de benodigde informatie, **urlnieuws** vervang ik naar http://users.digiskin.net/nieuws.php?siteid=1 ofzoiets, **inhoud** vervang ik dus naar wat de inhoud moet zijn zodat op iedere pagina de zelfde layout is.

Voor het admin systeem kan ik natuurlijk wel allemaal leuk de functie's in verschillende php file's zetten, alleen dat vind ik er niet zo mooi uitzien, ook de variable's zijn natuurlijk niet echt super, dus daarom wil ik het zo maken.

[beetjeofftopic]
op GoT en Tweakers.net hebben ze dit ook gedaan neem ik aan :)

is het duidelijk getypt? beetje vaag volgends mij

Verwijderd

Topicstarter
Kijk ik kan natuurlijk leuk die errorpage gebruiken, maar ik vind dat niet zo netjes. Ik weet dat er een andere oplossing voor is, maar welke?

Als alleen die directory's niet meer worden ingelezen en hij gewoon die index.php uit de admin map blijft halen (ongeacht welke map in inga, b.v. admin/a/a/a/a) dan kan ik het gewoon via de $REQUEST_URI doen, maar zover kom ik nog nieteens, hij blijft gewoon die map inlezen :(
CyberSnooP schreef op 24 november 2002 @ 23:15:
hier lees ik:
The effect of MultiViews is as follows: if the server receives a request for /some/dir/foo, if /some/dir has MultiViews enabled, and /some/dir/foo does not exist, then the server reads the directory looking for files named foo.*, and effectively fakes up a type map which names all those files, assigning them the same media types and content-encodings it would have if the client had asked for one of them by name. It then chooses the best match to the client's requirements.

Kortom: Options +Multiviews in je .htaccess file.

En er zijn al zoveel /14 topics over geweest dat zelfs de React search ze had gevonden denk ik :)
zoals ik dit nog een keer doorlees, dan zou hij het alleen maar met 1 map doen, en niet oneindig.

ACM:
kan jij niet de .htaccess van GoT of tweakers.net bestuderen? ;)

  • sjon.
  • Registratie: November 2002
  • Laatst online: 14-01-2024
Als je multiviews wilt gebruiken, moet je een admin.php in je root zetten, en dan /admin/bla gaan linken.

Met mod_rewrite doe je, in jouw geval, zoiets als dit:
code:
1
2
3
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/admin/index.php
RewriteRule ^admin\/(.*)$ /admin/index.php/$1 [NC,QSA,L]


en dat dan in je .htaccess in je root. Gebruik dit zelf ook veel, maar met RWrules in sub-dirs loop ik ook altijd te kl*te... gebruik ze 't liefst in me httpd.conf, of in me root .htaccess als ik eerstgenoemde niet kan aanpassen...


En ik denk dat GoT dus een forum.php in hun root heb, met multiviews dus :)

Verwijderd

[offtopic]
Verwijderd schreef op 24 November 2002 @ 21:54:
Nou kan ik dit al met php doen, dat is niet zo moeilijk te maken, hiervoor heb ik op ccmod gebruik gemaakt voor $REQUEST_URI met het volgende script:
PHP:
1
$a = explode("/", $REQUEST_URI);
Iets in mij gaat twijfelen als ik dit zie. :(

Verwijderd

Verwijderd schreef op 25 November 2002 @ 14:51:
[offtopic]


[...]

Iets in mij gaat twijfelen als ik dit zie. :(
'right NextGeneration!

Verwijderd

Topicstarter
Verwijderd schreef op 25 november 2002 @ 14:51:
[offtopic]


[...]

Iets in mij gaat twijfelen als ik dit zie. :(
Nee is niet uit jou script hoor ;)
Is toch niet zo moeilijk te bedenken?
sjon. schreef op 25 November 2002 @ 13:13:
Als je multiviews wilt gebruiken, moet je een admin.php in je root zetten, en dan /admin/bla gaan linken.

Met mod_rewrite doe je, in jouw geval, zoiets als dit:
code:
1
2
3
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/admin/index.php
RewriteRule ^admin\/(.*)$ /admin/index.php/$1 [NC,QSA,L]


en dat dan in je .htaccess in je root. Gebruik dit zelf ook veel, maar met RWrules in sub-dirs loop ik ook altijd te kl*te... gebruik ze 't liefst in me httpd.conf, of in me root .htaccess als ik eerstgenoemde niet kan aanpassen...


En ik denk dat GoT dus een forum.php in hun root heb, met multiviews dus :)
ahzo, dit komt in de buurt :D

maar ik maak wel gebruik van een andere .htacces in me root, dus moet deze in de map admin zetten.

[ Voor 63% gewijzigd door Verwijderd op 25-11-2002 19:19 ]

Pagina: 1