Rewriterule geeft 500 Internal Server Error

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • pim
  • Registratie: Juli 2001
  • Laatst online: 28-09 15:33
Ik heb de volgende Rewrite rule, die werkt zonder problemen:
code:
1
RewriteRule ^(.+)/$  /index.php?woord=$1


Dit zorgt ervoor dat aan de achterkant deze url:
- www.domein.nl/test/
wordt doorgestuurd naar
- www.domein.nl/index.php?woord=test

Nu wil ik de slash weghalen:
RewriteRule ^(.+)$ /index.php?woord=$1

Want ik wil geen slash op het einde van al mijn urls. Maar dan krijg ik een harde server error.
Verschillende combinaties werken allemaal niet, de slash weg is gelijk een 500 Internal Server Error:
- RewriteRule ^(.+) /index.php?woord=$1
- RewriteRule ^(.*)$ /index.php?woord=$1

Iemand een idee?

Edit.
Ik kom er ook achter dat dit gewoon werkt:

code:
1
RewriteRule ^([a-zA-Z0-9]+)$  /index.php?woord=$1


Terwijl dit een error geeft. (PUNT toegevoegd om elke teken te matchen:)

code:
1
RewriteRule ^([a-zA-Z0-9.]+)$  /index.php?woord=$1

[ Voor 22% gewijzigd door pim op 14-07-2010 05:34 ]


Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 07-10 15:21
Werkt het volgende niet?

code:
1
RewriteRule ^(.+)/?$  /index.php?woord=$1


(Vraagteken achter de slash maakt de slash optioneel)

Acties:
  • 0 Henk 'm!

  • pim
  • Registratie: Juli 2001
  • Laatst online: 28-09 15:33
Probleem was dat er een oneindige loop ontstond.
Moest .php bestand en /files/ folder uitsluiten van de rule:

rewriteCond $1 !(\.php|files/)

Acties:
  • 0 Henk 'm!

  • Sendy
  • Registratie: September 2001
  • Niet online
Als je de slash weghaalt zoals je doet, dan wordt $1 gelijk aan "test/". Dit vormt de URL www.domein.nl/index.php?woord=test/, en dat mag wellicht niet (maar dat kan je logfile je beter vertellen).

Trouwens Apache houdt wel van slashes achter "directories" in een URL, dat hoort namelijk zo. Misschien dat jouw Apache dat ook altijd doet (http://domein.nl/test naar http://domein/nl/test/ redirecten), en dat daarom ook altijd $1 "test/" wordt.

Acties:
  • 0 Henk 'm!

  • pim
  • Registratie: Juli 2001
  • Laatst online: 28-09 15:33
Ik ben bezig met een nederlandse UrbanDictinary..

Nu werkt eigenlijk alles achter de slash als een soort zoekfunctie:
http://www.betekenis-definitie.nl/Banaan

Netzo als hoe wikipedia werkt, en Wordpress geloof ik.

[ Voor 5% gewijzigd door pim op 04-02-2013 20:29 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

pim schreef op woensdag 02 juni 2010 @ 17:23:
Probleem was dat er een oneindige loop ontstond.
Moest .php bestand en /files/ folder uitsluiten van de rule:

rewriteCond $1 !(\.php|files/)
Wat is er mis met het volgende om te kijken of het bestand bestaat? :)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


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!

  • pim
  • Registratie: Juli 2001
  • Laatst online: 28-09 15:33
Dat zou inderdaad ook een oplossing zijn. Maar misschien is dit sneller omdat die controle dan niet nodig is?:)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Totdat iemand een artikel in je wiki wil schrijven waarmee ".php" of "files" in de titel terecht komt. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • pim
  • Registratie: Juli 2001
  • Laatst online: 28-09 15:33
Thanx, je hebt helemaal gelijk!
Ik heb een alternatieve oplossing gekozen.
In de root staat slechts een bestand, de .htaccess.

Vervolgens in de subfolder --www.urbanwoordenboek.nl-- de hele website.

En dan de volgende rewrite rules:

code:
1
2
3
RewriteRule ^([a-z])/$ /--www.urbanwoordenboek.nl--/index.php?letter=$1 [L]
rewriteCond $1 !--www.urbanwoordenboek.nl--/
RewriteRule ^(.*)$  /--www.urbanwoordenboek.nl--/index.php?woord=$1 [L]
Pagina: 1