Toon posts:

[APACHE] Url rewrite

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de grootste problemen met het instellen van rewrite in een .htaccess file.
Bij elke instelling die ik uit een guide of manual heb krijg ik een timeout of een 500 error.

Ik heb op 2 verschillende servers geprobeerd (mijn eigen en een betaalde webhosting), maar houd het zelfde probleem.

Ik wil dat de volgende url wordt gerewrite:
http://hostname/main/subject/article -> http://hostname/index.php?main=$1&subject=$2&article=$3

De volgende code is 1 van mijn probeersels:

code:
1
2
3
RewriteEngine on
RewriteBase /
RewriteRule ^/([^/]+)/([^/]+)/([^/]+) /index.php?main=$1&subject=$2&article=$3


Op deze ^^ reageert de server helemaal niet en krijg ik een 404 error.

Iemand een oplossing voor mijn probleem?

Verwijderd

mod_rewrite aan in .conf ?

Ik heb overigens dit:

code:
1
2
3
4
5
6
RewriteEngine on
RewriteBase /
RewriteRule ^show/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+) /index.php?var1=$1&var2=$2&var3=$3
RewriteRule ^show/([a-zA-Z0-9]+)/([a-zA-Z0-9]+) /index.php?var1=$1&var2=$2
RewriteRule ^show/([a-zA-Z0-9]+) /index.php?var1=$1
RewriteRule ^show /index.php


Ben alleen niet zo vloeiend met de regexp-jes, dus zou niet zo 1-2-3 weten of jij een foutje maakt in die van jou.

[ Voor 90% gewijzigd door Verwijderd op 12-07-2003 01:51 ]


Verwijderd

Wat zeggen je error.logs?

  • sjokki
  • Registratie: Juli 2002
  • Niet online
Verwijderd schreef op 11 juli 2003 @ 20:32:
Ik heb de grootste problemen met het instellen van rewrite in een .htaccess file.
Bij elke instelling die ik uit een guide of manual heb krijg ik een timeout of een 500 error.
Op Apacheversies voor 2.0.45 moet je uitkijken met mod_rewrite. Als je niet precies weet wat je doet heb je een flinke kans dat er een oneindige loop ontstaat. Die loop pakt 100% van de CPU en blijft vrolijk dagen doordraaien totdat iemand Apache herstart. Je kan het dus beter niet op iemand anders zijn computer uitproberen.
De volgende code is 1 van mijn probeersels:

code:
1
2
3
RewriteEngine on
RewriteBase /
RewriteRule ^/([^/]+)/([^/]+)/([^/]+) /index.php?main=$1&subject=$2&article=$3
Als je in .htaccess rewriterules zet moet je niet beginnen met een slash. Zo werkt het wel:
code:
1
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /index.php?main=$1&subject=$2&article=$3

Verwijderd

Topicstarter
sjokki schreef op 12 July 2003 @ 02:11:

Op Apacheversies voor 2.0.45 moet je uitkijken met mod_rewrite. Als je niet precies weet wat je doet heb je een flinke kans dat er een oneindige loop ontstaat. Die loop pakt 100% van de CPU en blijft vrolijk dagen doordraaien totdat iemand Apache herstart. Je kan het dus beter niet op iemand anders zijn computer uitproberen.
Dat heb ik dus ook gehad met mijn 1.3.26 Apache server. Gelukkig dat ik dit alleen bij de lokale server had waarbij ik een kill kon doen.
Als je in .htaccess rewriterules zet moet je niet beginnen met een slash. Zo werkt het wel:
code:
1
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /index.php?main=$1&subject=$2&article=$3
Dan ga ik dat gelijk ff uitproberen.

Verwijderd

Topicstarter
Ik zie niks in mijn error logs staan over rewrite errors. Wat ik wel zag staan is het volgende (heeft niet veel met mijn probleem te maken) en viel me een beetje op.

code:
1
2
3
4
5
6
7
8
[Sat Jul 12 08:04:09 2003] [error] [client 80.179.91.*] File does not exist: /var/www/scripts/root.exe
[Sat Jul 12 08:04:11 2003] [error] [client 80.179.91.*] File does not exist: /var/www/MSADC/root.exe
[Sat Jul 12 08:04:11 2003] [error] [client 80.179.91.*] File does not exist: /var/www/c/winnt/system32/cmd.exe
[Sat Jul 12 08:04:13 2003] [error] [client 80.179.91.*] File does not exist: /var/www/d/winnt/system32/cmd.exe
[Sat Jul 12 08:04:14 2003] [error] [client 80.179.91.*] File does not exist: /var/www/scripts/..%5c../winnt/system32/cmd.exe
[Sat Jul 12 08:04:15 2003] [error] [client 80.179.91.*] File does not exist: /var/www/_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe
[Sat Jul 12 08:04:17 2003] [error] [client 80.179.91.*] File does not exist: /var/www/_mem_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe
[Sat Jul 12 08:04:18 2003] [error] [client 80.179.91.*] File does not exist: /var/www/msadc/..%5c../..%5c../..%5c/..<C1>^\../..<C1>^\../..<C1>^\../winnt/system32/cmd.exe


Volgens mij probeerd iemand mijn server te hacken. Erg lollig, omdat hij hier denkt dat ik winnt heb draaien.


FF ontopic:

code:
1
2
3
4
5
RewriteEngine on
RewriteBase /
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /index.php?a=$1&b=$2&c=$3
RewriteRule ^([^/]+)/([^/]+) /index.php?a=$1&b=$2
RewriteRule ^([^/]+) /index.php?a=$1


Dit werkt met alleen de eerste rule aan. Wanneer ik andere rules wil aanzetten krijg ik een timeout of tewel een oneindige loop.

Ik heb dat geprobeerd op te lossen met de [L] switch erachter maar dat werkt niet.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Die errorlogs die je laat zien hebben in grote letters NIMDAAAAAAAAAAA over zich heen geschreven staan, no worry het feit dat ze in de errorlogs verschijnen betekent dat je goed beschermd bent tegen de aanvallen.

Verder is er nu na 5 posts nog steeds geen regel programmacode gevallen dus kick ik 'm uit Programming & Webscripting naar Software Algemeen, het is nu gewoon een software-configuratieprobleem :)

Professionele website nodig?


Verwijderd

Topicstarter
Tering, en ik maar zoeken naar mijn topic :(

[ Voor 59% gewijzigd door Verwijderd op 12-07-2003 12:56 ]


Verwijderd

Topicstarter
Oke problem fixed.

Wat ik echt helemaal over het hoofd heb gezien en me ook diep voor schaam is dat ik alles redirected naar index.php. De server wil zoeken naar index.php en kijkt eerst naar de .htaccess file. Daar ziet hij weer rewrite urls. Dus index.php werd steeds redirected naar zichzelf, waardoor er oneindige loops ontstaan.

1 lijn toevoegen aan de .htaccess file en het probleem was opgelosd.
code:
1
2
3
4
5
6
RewriteEngine on
RewriteBase /
RewriteRule ^index.php.* - [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /index.php?a=$1&b=$2&c=$3 [L]
RewriteRule ^([^/]+)/([^/]+) /index.php?a=$1&b=$2 [L]
RewriteRule ^([^/]+) /index.php?a=$1 [L]
Pagina: 1