|Summary:||AcceptPathInfo is ignored when using type maps|
|Product:||Apache httpd-2||Reporter:||Jose Kahan <jose>|
|Component:||mod_negotiation||Assignee:||Apache HTTPD Bugs Mailing List <bugs>|
|Attachments:||files for duplicating the issue (includes .htaccess)|
Description Jose Kahan 2018-08-09 13:59:13 UTC
Created attachment 36081 [details] files for duplicating the issue (includes .htaccess) Given the following structure (sent as a .zip file): hello.txt.var .htaccess files/hello.txt.en files/hello.txt.fr with the .htaccess content as follows: [[ AddHandler type-map .var MultiviewsMatch any AcceptPathInfo Off ]] and the type map content (hello.txt.var) as follows: [[ URI: hello.txt Content-Language: en Content-Type: text/plain URI: files/hello.en.txt Content-Language: fr Content-Type: text/plain URI: files/hello.fr.txt ]] The following URLs work as expected: GET '-H Accept-Language: en' http://localhost/apache_test/hello.txt GET '-H Accept-Language: fr' http://localhost/apache_test/hello.txt GET '-H Accept-Language: fr' http://localhost/apache_test/hello GET '-H Accept-Language: fr' http://localhost/apache_test/files/hello However, even though AcceptPathInfo is disabled, the following URLs surprisingly also work although expected to fail: GET '-H Accept-Language: en' http://localhost/apache_test/hello.txt/foo GET '-H Accept-Language: en' http://localhost/apache_test/hello/foo GET '-H Accept-Language: fr' http://localhost/apache_test/hello/foo/bar GET '-H Accept-Language: fr' http://localhost/apache_test/hello/jose/foo/bar/mon/day/ This issue happens regardless of the value of AcceptPathInfo. In contrast, the following one, which doesn't depend on the type map fails as expected: GET '-H Accept-Language: fr' http://localhost/apache_test/files/hello/foo It semss that somewhere in the pile, the request path info
Comment 1 Jose Kahan 2018-08-09 14:02:12 UTC
My last sentence is incomplete: it seems that somewhere during the handling of the request between multiviews and the type map either the acceptpath info config variable is not checked or the internal request structure is changed in a way that doesn't allow to detect it further on along, maybe something related to the internal redirect.