Wildcards en php get

    • Wildcards en php get

      Hallo,

      ik zit met een probleem. Ik ben bezig aan een projectje waar mensen een eigen site kunnen aanmaken.

      Dus de project bestaat uit 2 delen, 1; waar de mensen registreren voor een site aan te maken en 2; waar de mensen hun site krijgen.

      Hoofdsite is site.nl en als een gebruiker zich registreert krijgt hij gebruikersnaam.site.nl.

      Dat werkt allemaal perfect, via Wildcards en htaccess.

      gebruikesnaam.site.nl = site.nl/site.php?username=gebruikersnaam.

      Nu echter, als ik dus met de $_GET werk, neemt hij de pagina's niet op.. Bv gebruikersnaam.site.nl/?pag=aanmelden neemt hij aanmelden niet op.. Als ik op de hoofdsite bekijk wat de $_GET is, krijg ik niets mee.

      Hoe krijg ik dit opgelost?

      Source Code

      1. RewriteCond %{HTTP_HOST} !^www\.site\.nl
      2. RewriteCond %{HTTP_HOST} ([^.]+)\.site\.nl [NC]
      3. RewriteRule ^/?$ /site.php?username=%1 [L]
    • Zou je dit niet veel makkelijker kunnen doen?

      In wezen heb je geen rewriterules nodig, enkel een "front end controller" / "single point of entry".

      Op grond van het subdomein zou je gewoon naar een database kunnen schakelen (aangenomen dat je per subdomein een database hebt)?

      Idealiter "vervuil" je de $_GET namespace niet met dit soort "onzichtbare" $_GET parameters (die daarmee dus effectief "gereserveerd" zijn) - $_GET zou juist transparant moeten zijn.

      Maar/en om antwoord te geven op je vraag: probeer eens de QSA (Query String Attach) flag toe te voegen.

      Maar nogmaals, dat is dus niet nodig als je voor de "simpelere" oplossing gaat.
    • On a sidenote: als iedereen tot op zekere hoogte pagina's kan creëren (of andere dingen kan doen met beschikbaar gestelde functionaliteit) voor een eigen website lijkt mij veiligheid wel een dingetje. Als je maar 1 voordeur hebt (index.php) hoef je er ook maar 1 slot op te gooien :). Lijkt mij helpen bij het beheersbaar houden van dit soort concepten. Als je dadelijk allerlei standalone scripts hebt die gepatched moeten worden moet je mogelijk een heleboel werk dubbel doen. Met één kapstok hoeft dat maar op één plaats.

      Ah well :).