Acties:
  • 0 Henk 'm!

  • Svennetjee
  • Registratie: December 2007
  • Laatst online: 30-08 12:32
Ik heb een vraag:
de mod_rewrite module voor Apache is ingeschakeld op mijn webserver en wanneer ik url's verwerk volgens onderstaande rewrites werkt het perfect (let op: even uit mijn duim gezogen als voorbeeld ;)):

code:
1
2
3
RewriteEngine On
RewriteRule ^pagina1 pagina1.php
RewriteRule ^dir/(.*) dir/$1.php


Maar wanneer ik het volgende probeer te doen, werkt het niet (HTTP 500 error):
code:
1
2
RewriteEngine On
RewriteRule ^(.*) $1.php


Hoe komt het dat ik de reguliere expressie '^(.*)' niet kan/mag uitvoeren op 'root' niveau?

Acties:
  • 0 Henk 'm!

  • 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


Acties:
  • 0 Henk 'm!

  • haneev
  • Registratie: November 2005
  • Laatst online: 04-09 16:01
Omdat hij niet weet wat de root is. En ook lijkt me het niet verstandig om $1.php te doen. Doe liever iets in de trant van index.php?q=$1 (of iets dergelijks)

Acties:
  • 0 Henk 'm!

  • burne
  • Registratie: Maart 2000
  • Niet online

burne

Mine! Waah!

(en los van het voorgaande: al eens in error.log gekeken? staat meestal mooie uitleg over fouten in, en minimaal iets wat je de goede kant op moet sturen met google bij de hand..)

I don't like facts. They have a liberal bias.


Acties:
  • 0 Henk 'm!

  • Svennetjee
  • Registratie: December 2007
  • Laatst online: 30-08 12:32
@RobIII: Het spijt me, toch niet goed genoeg gekeken naar de categorie
@haneev: Ik zal zo even kijken of het werkt als ik de root vast zet, en de bovenstaande voorbeelden waren maar even snel uit mijn mouw geschudt ;)
@burne: eeh, nee :X

Acties:
  • 0 Henk 'm!

Verwijderd

Vorige antwoorden hebben in elk geval niets te maken met de oplossing. Het probleem is dat de rewrite engine in een oneindige loop komt omdat elke URI weer herschreven moet worden. Dat gaat niet werken. Zet er een RewriteCond door die ervoor zorgt dat de volgende RewriteRule alleen wordt gebruikt als de URI niet aan de conditie voldoet, bijvoorbeeld:
code:
1
2
3
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^(.*) $1.php

Voor problemen met mod_rewrite moet je overigens RewriteLog en RewriteLogLevel gebruiken.

[ Voor 8% gewijzigd door Verwijderd op 17-04-2009 20:21 ]


Acties:
  • 0 Henk 'm!

  • Svennetjee
  • Registratie: December 2007
  • Laatst online: 30-08 12:32
Hmm, het lijkt er op dat de oplossing gegeven door haneev werkte, namelijk het toevoegen van een RewriteBase:

code:
1
2
3
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.html index.php?page=$1


Bovenstaande code gebruik ik nu. Imho geen probleem om het zo te gebruiken. Zie ik een veiligheidslek over het hoofd? (Buiten het feit dat de $_GET['page'] natuurlijk tot uit en in de treuren gecheckt moet worden ;))
Pagina: 1