[php] superklasses - creatieve oplossing gevraagd

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • judgem
  • Registratie: December 2001
  • Laatst online: 28-04-2014

judgem

Lord of Metal

Topicstarter
Gegroet,

Voor mijn website (zie undersign) heb ik bezig een en ander structureel te gaan veranderen. Aangezien Google niet echt meewerkt de site vinden, had ik het voornemen om de URL's aan te passen. De bedoeling zou dan worden dat een URL als http://www.lordsofmetal.n...eview.php?id=3512&lang=nl getransformeerd zou kunnen worden tot bijvoorbeeld http://www.lordsofmetal.nl/nl/reviews/3512.php.

Afijn, het is mij bekend dat de ideale manier om dat te bewerkstelligen de methode mod_rewrite is maar daar loop ik tegen het probleem aan dat de httpd.conf van mijn provider aangepast moet worden en dat zit er niet in ben ik bang. Na wat navraag gedaan te hebben werd me gemeld dat ik creatief moest zijn in mijn oplossing te bedenken en dus liet ik de raderen draaien..

Een andere oplossing (dacht ik) was het zelf aanmaken van de losse php-bestanden (uiteraard middels een scriptje.. ik ben niet gek :+) om dan ermee aan de gang te gaan maar ook daar stuitte ik op een probleem: Ik kan om veiligheidstechnische redenen maar maximaal 1 map terugkijken in mijn hierarchie waar ik me ook bevindt. Deels is er wat van te zeggen uit het oogpunt van veiligheid vanuit de provider, anderzijds is het voor mij enorm lastig aangezien ik er weinig trek in heb mijn databaseconnectieklasses in een publieke map te stoppen..

waar ik eerst genoeg had aan
PHP:
1
require('../.include/dbconnect.inc.php');

zou ik dit nu moeten vervangen door
PHP:
1
require('../../../.include/dbconnect.inc.php');

en die vlieger gaat dus niet op..

Ik heb al vanalles geprobeerd en me diverse malen het hoofd gebroken maar ik kom er even niet meer aan uit..

Heeft iemand anders wellicht een creatieve ingeving om dit probleem de baas te worden? BVD.

- Ik bespreek ook harde waren en dan wel op www.lordsofmetal.nl - en ik draai en programmeer ze in DYNAMO


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
mod rewrite kan je toch ook in een .htaccess stoppen :?

Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 22:25

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
PrisonerOfPain schreef op 14 maart 2004 @ 22:40:
mod rewrite kan je toch ook in een .htaccess stoppen :?
Klopt, maar dan moet in je conf file dit wel toelaten :). Kan me trouwens haast niet voorstellen dat je provider geen .htaccess overwrite toestaat.

Acties:
  • 0 Henk 'm!

  • judgem
  • Registratie: December 2001
  • Laatst online: 28-04-2014

judgem

Lord of Metal

Topicstarter
Ja maar dan zit je met 404-files te klooien toch of zit ik er naast?

- Ik bespreek ook harde waren en dan wel op www.lordsofmetal.nl - en ik draai en programmeer ze in DYNAMO


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Ik zou eerst eens proberen de rewriteengine aan te zetten in een subdir met een .htaccess

probeer dat bijvoorbeeld door een simpel testje in een subdir 'test'
code:
1
2
3
RewriteEngine On
RewriteBase /test
RewriteRule oud\.html nieuw.html

Met 1 bestand genaamd 'nieuw.html' en check of je die kan benaderen door naar jouwdomein.nl/test/oud.html te gaan.

Als dat niet werkt kun je ook nog naar MultiViews kijken (zie de FAQ).

Testen met:
code:
1
Options +MultiViews

en een bestand 'index.php'
PHP:
1
2
3
<?php
  echo $_SERVER [ 'REQUEST_URI' ];
?>
te benaderen met index/test

Als dat niet werkt zou ik het laten voor wat het is, want met elke andere oplossing haal je je alleen maar een hele hoop problemen op de hals.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 22:25

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
judgem schreef op 14 maart 2004 @ 22:45:
Ja maar dan zit je met 404-files te klooien toch of zit ik er naast?
P&W FAQ - PHP

drm: jouw voorbeeld geeft een 500 Internal Server Error :)

edit:
Maar dat ligt aan mijn instellingen merk ik al. Hij herkent heel het command niet. Je voorbeeld zal dus wel kloppen ;)

[ Voor 38% gewijzigd door We Are Borg op 14-03-2004 23:05 ]


Acties:
  • 0 Henk 'm!

  • judgem
  • Registratie: December 2001
  • Laatst online: 28-04-2014

judgem

Lord of Metal

Topicstarter
We Are Borg schreef op 14 maart 2004 @ 22:54:
[...]


P&W FAQ - PHP

drm: jouw voorbeeld geeft een 500 Internal Server Error :)
Ik dank u! Dit deel van de FAQ was ik nog niet eerder tegengekomen (de Apche links in het stuk echter wel :))

Maar desalniettemin: Zou dit de enige denkbare oplossing voor mijn probleem kunnen zijn?

- Ik bespreek ook harde waren en dan wel op www.lordsofmetal.nl - en ik draai en programmeer ze in DYNAMO


Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 22:25

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
judgem schreef op 14 maart 2004 @ 22:59:
[...]

Ik dank u! Dit deel van de FAQ was ik nog niet eerder tegengekomen (de Apche links in het stuk echter wel :))

Maar desalniettemin: Zou dit de enige denkbare oplossing voor mijn probleem kunnen zijn?
Vast niet de enige, maar zoals drm al aangeeft wel een van de betere imo :). Als je dit namelijk aan de praat krijgt, werkt het beter dan jouw manier.

Misschien doet het eerste voorbeeld van drm het wel bij jou, weet het niet :P Dat lijkt mij i.i.g. de mooiste oplossing. Succes :)

[ Voor 5% gewijzigd door We Are Borg op 14-03-2004 23:02 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

We Are Borg:
Je voorbeeld zal dus wel kloppen ;)
*Knikt * ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Even een vraagje over dit onderwerp. Weet iemand hoe zwaar mod_rewrite is voor een webserver?

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • judgem
  • Registratie: December 2001
  • Laatst online: 28-04-2014

judgem

Lord of Metal

Topicstarter
Het voorbeeld van DRM werkt inderdaad waarvoor dank.. Ik ben nu nog wat aan het klungelen met die variabelen allen dat wil nog niet echt :(

- Ik bespreek ook harde waren en dan wel op www.lordsofmetal.nl - en ik draai en programmeer ze in DYNAMO


Acties:
  • 0 Henk 'm!

Verwijderd

Grijze Vos schreef op 14 maart 2004 @ 23:41:
Even een vraagje over dit onderwerp. Weet iemand hoe zwaar mod_rewrite is voor een webserver?
http://httpd.apache.org/docs/mod/mod_rewrite.html

Lees dat even door, daar staat alles over hoe mod_rewrite met de Apache API samenwerkt en meer.
Er staan ook wat dingen in over de performance van mod_rewrite.

Acties:
  • 0 Henk 'm!

  • judgem
  • Registratie: December 2001
  • Laatst online: 28-04-2014

judgem

Lord of Metal

Topicstarter
Ik zit nog steeds te stuntelen met die variabelen.. Iemand een voorzetje wellicht? En zo ja, ik mag dan aannemen dat ik voor keer dat ik zo'n rewrite plaats de 2 regels (Rewritebase, etc) moet gebruiken of is alleen de rewrite zelf voldoende in zo'n geval indien het bronbestanden uit dezelfde directory betreft?

BVD

- Ik bespreek ook harde waren en dan wel op www.lordsofmetal.nl - en ik draai en programmeer ze in DYNAMO


Acties:
  • 0 Henk 'm!

  • Martijn02
  • Registratie: September 2000
  • Laatst online: 19-09 14:55

Martijn02

/* No Comment */

Die 500 error geeft in ieder geval aan dat je provider iets doet met wat er in de .htaccess staat dus dat is al een goed teken. Nu je rewriteruled nog even goed configgen.

Mocht het nou echt niet lukken kan je altijd nog in de .htaccess het errordocument instellen op je index.php. Wel moet je dan daar de volgende headers sturen om de 404 headers van apache te overschrijven:
PHP:
1
2
header ("HTTP/1.1 200 OK");
header ("Status: 200 OK");

/edit: Nou vooruit, ook nog even mijn rewriterules
code:
1
2
3
4
5
6
7
8
9
10
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI}              !favicon.ico$
RewriteCond %{REQUEST_URI}              !^/images/*
RewriteCond %{REQUEST_URI}              !^/scripts/*
RewriteCond %{REQUEST_URI}              !^/styles/*
RewriteCond %{REQUEST_URI}              !^/index.php*
RewriteRule (.*) /index.php

#ErrorDocument  404  /index.php #en deze kan je voor de 404-methode gebruiken.

[ Voor 38% gewijzigd door Martijn02 op 17-03-2004 00:05 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

judgem:
Ik zit nog steeds te stuntelen met die variabelen.. Iemand een voorzetje wellicht?
code:
1
2
RewriteBase /test
RewriteRule ^([a-z]+)/([0-9]+)$  a.php?b=$1&c=$2

Benader eens met /test/piet/169 en zet in a.php
code:
1
<? print_r ( $_REQUEST ) ?>


Verder moet je gewoon even de Regular Expression FAQ lezen, wat tutorials daarover doen en eens in de mod_rewrite documentatie lezen. Je mag nu in ieder geval wel met concrete problemen komen, als het nog niet lukt
ik mag dan aannemen dat ik voor keer dat ik zo'n rewrite plaats de 2 regels (Rewritebase, etc) moet gebruiken of is alleen de rewrite zelf voldoende in zo'n geval indien het bronbestanden uit dezelfde directory betreft?
Je hoeft de directives RewriteBase en RewriteEngine niet te herhalen.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1