Toon posts:

[htaccess] mod_rewrite weigert

Pagina: 1
Acties:

Verwijderd

Topicstarter
De volgende htaccess mod_rewrite:

werkt wel op Windows én FreeBSD
code:
1
RewriteRule ^(\w+)/(\w+)\.htm$ /$1_$2.php [QSA,L]


werkt niet op FreeBSD, maar wel op Windows
code:
1
RewriteRule ^(\w+)/(\w+)\.htm$ /$1.$2.php [QSA,L]


Enige verschil is dus de punt i.p.v. underscore tussen $1 en $2.

Ik kan hier werkelijk niets over vinden. Alles wat ik heb kunnen vinden heb ik al gebruikt om tot zover te komen, maar het laatste stukje van de puzzel ontbreekt dus nog. Iemand van jullie dit dit probleem begrijpt? Ik wil het namelijk ook op FreeBSD werkend krijgen.

[ Voor 6% gewijzigd door Verwijderd op 20-11-2009 14:18 . Reden: verduidelijking probleem ]


  • pedorus
  • Registratie: Januari 2008
  • Niet online
En als je de punt escaped? Wat werkt er niet aan onder FreeBSD, wat komt er in de log?

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Verwijderd

Topicstarter
pedorus schreef op vrijdag 20 november 2009 @ 14:22:
En als je de punt escaped? Wat werkt er niet aan onder FreeBSD, wat komt er in de log?
Escapen maakt geen verschil.

Onder FreeBSD werkt de rewrite niet. Hij lijkt de hele rewrite niet op te pakken zodra $1_$2 wordt gewijzigd in $1.$2.

De apache error log toont:
code:
1
"GET /voorbeeld/test.htm HTTP/1.1" 404 353 "-"

[ Voor 26% gewijzigd door Verwijderd op 20-11-2009 17:07 ]


  • Cartman!
  • Registratie: April 2000
  • Niet online
Andersom toch? Zodra je er een punt van maakt doet ie t op FreeBSD niet meer volgens je TS. Moet je die punt niet gewoon escapen?

Verwijderd

Topicstarter
Cartman! schreef op vrijdag 20 november 2009 @ 17:07:
Andersom toch? Zodra je er een punt van maakt doet ie t op FreeBSD niet meer volgens je TS. Moet je die punt niet gewoon escapen?
Je hebt gelijk, 't moest andersom zijn. Heb het ge-edit.

Escapen maakt geen verschil.

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Zet ff de rewrite log aan, dan kan je beter zien wat er gebeurt. :)

code:
1
2
RewriteLog "/usr/local/var/apache/logs/rewrite.log" 
RewriteLogLevel 9

Sundown Circus


Verwijderd

FreeBSD is in elk geval hoofdlettergevoelig. Verder zou ik niet kunnen bedenken waarom er verschil zou zijn.

Verwijderd

Topicstarter
Probleem opgelost!!!
Because you (or your host) enabled (by accident?) MultiViews (provided by mod_negotiation) in an Options directive.
http://httpd.apache.org/d...gotiation.html#multiviews

mod_negotiation registers a type_checker hook, which runs prior mod_rewrite's fixup hook. Your request was internally fast redirected to index.php and your regular expression does not match against index.php. That's why your rule failed to match.
Options -MultiViews fixed the problem :)

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 01-02 22:27

Creepy

Tactical Espionage Splatterer

Alsnog even een tikje door naar Serversoftware en Windows Servers aangezien daar de vragen met betrekking tot (configuratie van) serversoftware horen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1