Toon posts:

[apache] Backslash geef 404 error.

Pagina: 1
Acties:

Verwijderd

Topicstarter
In mijn .htaccess bestand heb ik het volgende staan:
code:
1
2
3
4
5
6
RewriteEngine ON

RewriteRule ^([^/.]+)$ main-cat.php?catmain=$1
RewriteRule ^([^/.]+)/$ main-cat.php?catmain=$1

ErrorDocument 404 /index.php


Dit werkt allemaal prima!
Ik loop alleen tegen één 404 error aan, en dat is als er een "\" backslash in de URL staat.

Het rare is dat "ErrorDocument 404 /index.php" deze 404 error ook niet afvangt.

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 02:08

AW_Bos

Liefhebber van nostalgie... 🕰️

is het niet handig die Error Document 404 eerst in uit te voeren, en dan de mod rewrite?

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Verwijderd

Topicstarter
AW_Bos schreef op vrijdag 04 december 2009 @ 12:56:
is het niet handig die Error Document 404 eerst in uit te voeren, en dan de mod rewrite?
Heb ik ook net geprobeerd, maakt geen verschil.

Verwijderd

Overigens is dit compacter:
code:
1
2
3
4
5
RewriteEngine ON

RewriteRule ^([^/.]+)/?$ main-cat.php?catmain=$1

ErrorDocument 404 /index.php


Volgens mij klopt je regex niet helemaal, trouwens.

Je wilt gewoon doen dat:
www.mijnsite.tld/auto
www.mijnsite.tld/main-cat.php?catmain=auto
wordt?
Dan moet je gewoon
code:
1
RewriteRule ^(.+)/?$ main-cat.php?catmain=$1

doen. :)

Je huidige regex zegt nu: rewrite alles dat begint met iets dat niet begint met een slash of elk willekeurig symbool. :P

[ Voor 60% gewijzigd door Verwijderd op 04-12-2009 19:44 ]


Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 04 december 2009 @ 19:37:
Overigens is dit compacter:
code:
1
2
3
4
5
RewriteEngine ON

RewriteRule ^([^/.]+)/?$ main-cat.php?catmain=$1

ErrorDocument 404 /index.php


Volgens mij klopt je regex niet helemaal, trouwens.

Je wilt gewoon doen dat:
www.mijnsite.tld/auto
www.mijnsite.tld/main-cat.php?catmain=auto
wordt?
Dan moet je gewoon
code:
1
RewriteRule ^(.+)/?$ main-cat.php?catmain=$1

doen. :)

Je huidige regex zegt nu: rewrite alles dat begint met iets dat niet begint met een slash of elk willekeurig symbool. :P
Ik heb hem even getest maar het werkt helaas niet.

Ik krijg in Firefox de volgende melding:

"Firefox heeft vastgesteld dat de server het verzoek voor dit adres doorverwijst op een manier die nooit zal eindigen."

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01-02 03:52
Verwijderd schreef op vrijdag 04 december 2009 @ 19:37:
Je huidige regex zegt nu: rewrite alles dat begint met iets dat niet begint met een slash of elk willekeurig symbool. :P
Dat staat er helemaal niet. De huidige regel matcht alleen als het hele pad geen slashes of punten bevat. (Dus http://www.example.com/auto matcht wel, http://www.example.com/404.php matcht niet omdat er een punt in zit.)

[quoteOverigens is dit compacter:
code:
1
2
3
Dan moet je gewoon
[code]RewriteRule ^(.+)/?$ main-cat.php?catmain=$1[/code]
doen. :)

Dit werkt voor geen meter, want nu wordt http://example.com/auto geredirect naar http://example.com/main-cat.php?catmain=auto welke wordt geredirect naar http://example.com/main-c...-cat.php%3Fcatmain%3Dauto enzovoorts in het oneindige.

Gewoon vanaf blijven dus; de huidige rewrite rule is gewoon goed. Als je toch vermoed dat het probleem in de rewrite rules zit, zet dan eens je RewriteLogLevel een stuk hoger, en kijk in de server logfile wat er precies gebeurt wanneer je een request met een backslash doet.

  • 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

Pagina: 1