Toon posts:

[mod_rewrite] Regular Expression lukt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

ik probeer voor het eerst een Regular Expression te maken voor mod_rewrite.

Op de site http://www.zytrax.com/tech/web/regex.htm zou hij moeten werken, maar wanneer ik het in de .htaccess plaats werkt het niet.

Dit heb ik als URL: https://bla.blabla.nl/man...89jnarfjegus05/?domein.nl

Dit in de .htaccess:

RewriteEngine on
RewriteRule ^.*/manager/(.*)$ https://bla.blabla.nl/manager/$1/index.php [L]

De $1 moet domein.nl worden. Maar ik krijg steeds een 404 not found.

Ik ben nu 3 dagen bezig met lezen, maar kom er nog steeds niet uit. Volgens mij moet de mach wel goed zijn, maar er zal wel iets onders fout zijn.

Verwijderd

Gokje: de AllowOverride directive laat niet toe dat er instellingen worden overruled door .htacces bestanden.
Mekkelijkste test: zet complete garbage in een .htaccess bestand en vraag via HTTP een bestand op in dezelfde directory. Als je een 500 error krijgt worden je .htacces bestanden in elke geval gelezen. Als je gewoon het bestand krijgt niet, en staat je AllowOverride in elk geval verkeerd.

Verwijderd

ff uitsplitsen die hap
code:
1
  https://bla.blabla.nl/manager/4f7k64pqi0t989jnarfjegus05/?domein.nl


De $1 moet domein.nl worden. Maar ik krijg steeds een 404 not found.

dus
code:
1
https://bla.blabla.nl/manager/domein.nl/index.php


wat binnen komt
code:
1
 https://bla.blabla.nl/manager/ (4f7k64pqi0t989jnarfjegus05) /? (domein.nl)


rule wordt dan
code:
1
2
RewriteEngine on
RewriteRule ^.*/manager/(.*)$/?(.*)    https://bla.blabla.nl/manager/$2/index.php [L]


Wat je met die '4f7k64pqi0t989jnarfjegus05' is dus niet belangrijk?

Verwijderd

Topicstarter
Verwijderd schreef op zondag 17 februari 2008 @ 14:20:
Gokje: de AllowOverride directive laat niet toe dat er instellingen worden overruled door .htacces bestanden.
Mekkelijkste test: zet complete garbage in een .htaccess bestand en vraag via HTTP een bestand op in dezelfde directory. Als je een 500 error krijgt worden je .htacces bestanden in elke geval gelezen. Als je gewoon het bestand krijgt niet, en staat je AllowOverride in elk geval verkeerd.
De .htacces wordt wel gelezen. Tijdens het proberen al wat fouten gemaakt en dan krijg ik een 500 fout.

Verwijderd

Topicstarter
Verwijderd schreef op zondag 17 februari 2008 @ 14:44:
ff uitsplitsen die hap
code:
1
  https://bla.blabla.nl/manager/4f7k64pqi0t989jnarfjegus05/?domein.nl


De $1 moet domein.nl worden. Maar ik krijg steeds een 404 not found.

dus
code:
1
https://bla.blabla.nl/manager/domein.nl/index.php


wat binnen komt
code:
1
 https://bla.blabla.nl/manager/ (4f7k64pqi0t989jnarfjegus05) /? (domein.nl)


rule wordt dan
code:
1
2
RewriteEngine on
RewriteRule ^.*/manager/(.*)$/?(.*)    https://bla.blabla.nl/manager/$2/index.php [L]


Wat je met die '4f7k64pqi0t989jnarfjegus05' is dus niet belangrijk?
Sorry, dit moet: RewriteRule ^.*/manager/(.*)$/?(.*) https://bla.blabla.nl/manager/site/$2/index.php [L] zijn.

Op deze manier wil ik voor koen dat de url kan worden gezien naar de manager. De code '4f7k64pqi0t989jnarfjegus05' moet dus ongezien worden vervangen door /site/domein.nl/ en de code veranderd steeds. DMV lookup in de datbase wordt hier de domeinnaam bij opgehaald.

[ Voor 4% gewijzigd door Verwijderd op 17-02-2008 16:15 ]


  • mjax
  • Registratie: September 2000
  • Laatst online: 04-02 17:04
Al je je RewriteLog aanzet, kun je ook zien wat Apache allemaal doet met binnenkomende URL's en uitgevoerde modrewrite rules.

Verwijderd

Topicstarter
mjax schreef op zondag 17 februari 2008 @ 16:12:
Al je je RewriteLog aanzet, kun je ook zien wat Apache allemaal doet met binnenkomende URL's en uitgevoerde modrewrite rules.
Hum goede tip.
Alleen die geeft een 500 fout. Zowel met het volledig path als alleen een bestandsnaam.

  • JortK
  • Registratie: Mei 2007
  • Laatst online: 26-09-2022
Verwijderd schreef op zondag 17 februari 2008 @ 16:20:
[...]


Hum goede tip.
Alleen die geeft een 500 fout. Zowel met het volledig path als alleen een bestandsnaam.
even je error.log van Apache erbij pakken ?

Verwijderd

Topicstarter
JortK schreef op zondag 17 februari 2008 @ 16:26:
[...]

even je error.log van Apache erbij pakken ?
Moet weer even wakker worden lijkt het.

Oke die geeft een [Sun Feb 17 16:19:05 2008] [alert] [client **.**.**.** /var/www/vhosts/bla.blabla.nl/httpdocs/manager/.htaccess: RewriteLog not allowed here

zal hem even in de vhost.conf zetten.

Staat er in. Log is aangemaakt, maar blijft zo schoon als het maar kan. Geen foutmeldingen, niets.

[ Voor 11% gewijzigd door Verwijderd op 17-02-2008 16:46 ]


  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 23:00

DataGhost

iPL dev

Loglevel hoger zetten? Config refreshen?
Je moet er trouwens ook nog rekening mee houden dat een vraagteken een regex modquantifier is en je die niet zomaar overal tussen kan smijten en verwachten dat het werkt. Sowieso vraag ik me af of het deel na het vraagteken in een url wel parsebaar is. Het is namelijk meestal de bedoeling dat soort vraagteken-geneuzel weg te poetsen. De documentatie is hierover niet direct extreem duidelijk, maar het zal direct zichtbaar zijn in het rewrite log. De laatste keer dat ik dat gebruikte zag ik namelijk zeer verbose een heleboel stappen van het proces, van browser-request tot uiteindelijke url.

Verwijderd

Topicstarter
DataGhost schreef op zondag 17 februari 2008 @ 23:18:
Loglevel hoger zetten? Config refreshen?
Je moet er trouwens ook nog rekening mee houden dat een vraagteken een regex modquantifier is en je die niet zomaar overal tussen kan smijten en verwachten dat het werkt. Sowieso vraag ik me af of het deel na het vraagteken in een url wel parsebaar is. Het is namelijk meestal de bedoeling dat soort vraagteken-geneuzel weg te poetsen. De documentatie is hierover niet direct extreem duidelijk, maar het zal direct zichtbaar zijn in het rewrite log. De laatste keer dat ik dat gebruikte zag ik namelijk zeer verbose een heleboel stappen van het proces, van browser-request tot uiteindelijke url.
Hoi, Ik heb de RewriteLog op 9 gezet. De file wordt weer aangemaakt, maar blijft leeg. ook als ik een error 500 uit lok.

Later stond er wel wat:
code:
1
2
3
4
83.149.69.18 - - [18/Feb/2008:08:36:32 +0100] [/sid#954b5a8][rid#9cdddc0/initial] (2) init rewrite engine with requested uri /
83.149.69.18 - - [18/Feb/2008:08:36:32 +0100] [/sid#954b5a8][rid#9cdddc0/initial] (1) pass through /
83.149.69.18 - - [18/Feb/2008:08:36:32 +0100] [/sid#954b5a8][rid#9ce6ac0/subreq] (2) init rewrite engine with requested uri /index.php
83.149.69.18 - - [18/Feb/2008:08:36:32 +0100] [/sid#954b5a8][rid#9ce6ac0/subreq] (1) pass through /index.php


Het vraagteken-geneuzel kan ik ook anders doen door een /bla.nl er van te maken, dus https://bla.blabla.nl/man...d89jnarfjegus05/domein.nl
moet dan worden,
https://bla.blabla.nl/manager/sites/domein.nl/index.php

[ Voor 19% gewijzigd door Verwijderd op 18-02-2008 08:50 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

'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.


Verwijderd

Topicstarter
Dan ben ik toch goed?
Programming
Problemen met applicatieprogrammering of serversided scripting.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Scripting is niet hetzelfde als een server configureren. :)

'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.


Verwijderd

Topicstarter
-NMe- schreef op maandag 18 februari 2008 @ 12:54:
Scripting is niet hetzelfde als een server configureren. :)
Ben ook geen server aan het configureren, bezig met apache scripting aan de server kant. Het is maar hoe je het bekijkt.

Maar ik wil hem ook wel elders plaatsen hoor, want tot opheden werkt het nog niet.

Het is maar wat je duidelijk vind. PRG>>WSS dit zegt mij niets. Bij het zoeken waar het dan wel moest kwam ik in het vorige forum uit en deed een zoek opdracht naar mod_rewrite met heel veel resultaten, goed dus.

Hier een update:
Hallo allemaal,

(deze stond eerst in een ander formum, maar dat was niet goed).

ik probeer voor het eerst een Regular Expression te maken voor mod_rewrite.

Op de site http://www.zytrax.com/tech/web/regex.htm zou hij moeten werken, maar wanneer ik het in de .htaccess plaats werkt het niet.

Dit heb ik als URL: https://bla.blabla.nl/man...89jnarfjegus05/domein.nl

Dit in de .htaccess:

code:
1
2
RewriteCond  %{REQUEST_URI}(.*) ^manager/site$
RewriteRule ^(.*)$ manager/site/$1/index\.php [L]


De $1 moet domein.nl worden. Maar ik krijg steeds een 404 not found.

Ik ben nu 4 dagen bezig met lezen, maar kom er nog steeds niet uit.

Log:
83.149.69.18 - - [18/Feb/2008:16:53:51 +0100] [/sid#95743e8][rid#9daa158/initial] (2) init rewrite engine with requested uri /
83.149.69.18 - - [18/Feb/2008:16:53:51 +0100] [/sid#95743e8][rid#9daa158/initial] (1) pass through /
83.149.69.18 - - [18/Feb/2008:16:53:51 +0100] [/sid#95743e8][rid#9db0170/subreq] (2) init rewrite engine with requested uri /index.php
83.149.69.18 - - [18/Feb/2008:16:53:51 +0100] [/sid#95743e8][rid#9db0170/subreq] (1) pass through /index.php

[ Voor 64% gewijzigd door Verwijderd op 18-02-2008 17:23 ]


  • _H_G_
  • Registratie: September 2002
  • Laatst online: 15:30
Je wil alles achter het vraagteken in je eigen url stoppen? En groepen worden gedefinieerd door haakjes. Het gebruik van .* snap ik trouwens niet helemaal. Waarom geen +? Al zal er wel een reden voor zijn. En vraagteken in pattern escapen.

Geen idee of ik m in één keer goed heb :) Zo ja, raad ik je nog aan om de documentatie eens goed te lezen. Veel beter om een regulier expressie ook te begrijpen als je m gebruikt.

code:
1
RewriteRule ^+/manager/+/\?(+)$    https://bla.blabla.nl/manager/$1/index.php [L]


offtopic:
En het licht er imho niet aan hoe je het bekijkt. Het is een configuratie voor een rewrite engine, geen script.

[ Voor 12% gewijzigd door _H_G_ op 19-02-2008 08:27 ]


Verwijderd

Topicstarter
_H_G_ schreef op dinsdag 19 februari 2008 @ 08:18:
Je wil alles achter het vraagteken in je eigen url stoppen? En groepen worden gedefinieerd door haakjes. Het gebruik van .* snap ik trouwens niet helemaal. Waarom geen +? Al zal er wel een reden voor zijn. En vraagteken in pattern escapen.

Geen idee of ik m in één keer goed heb :) Zo ja, raad ik je nog aan om de documentatie eens goed te lezen. Veel beter om een regulier expressie ook te begrijpen als je m gebruikt.

code:
1
RewriteRule ^+/manager/+/\?(+)$    https://bla.blabla.nl/manager/$1/index.php [L]


offtopic:
En het licht er imho niet aan hoe je het bekijkt. Het is een configuratie voor een rewrite engine, geen script.
Hallo _H_G_ ,

bedankt voor je antwoord. Zoals ik al eerder schreef ben ik daar al lange tijd mee bezig. Helaas zijn we niet allemaal wiskundig aan gelegd, ik begrijp er in ieder geval geen hout van.

Je voorbeeld geeft na het verandere van de bla.bla een 500 foutmelding.

Ik ben er onder tussen wel achter dat ook de plaats van de htaccess uit maakt. In dit geval staad hij in de map site.

  • _H_G_
  • Registratie: September 2002
  • Laatst online: 15:30
Ok, het + ipv .* was wellicht niet zo'n goed idee. Geen idee waarom (maar staat vast in de documentatie).

Maar als ik
code:
1
^.*/manager/.*/\?(.*)$

gebruik voor
code:
1
https://bla.blabla.nl/manager/89jnarfjegus05/?domein.nl

Dan krijg ik toch dat parameter 1 de string 'domein.nl' is.
Pagina: 1