Need to allow encoded slashes on Apache
apache, apache-config, apache2
Solution
This issue is not related to Apache Bug 35256. Rather, it is related to Bug 46830. The `AllowEncodedSlashes` setting is not inherited by virtual hosts, and virtual hosts are used in many default Apache configurations, such as the one in Ubuntu. The workaround is to add the `AllowEncodedSlashes` setting inside a `<VirtualHost>` container (`/etc/apache2/sites-available/default` in Ubuntu).
Bug 35256: `%2F` will be decoded in PATH_INFO (Documentation to `AllowEncodedSlashes` says no decoding will be done)
Bug 46830: If `AllowEncodedSlashes On` is set in the global context, it is not inherited by virtual hosts. You must explicitly set `AllowEncodedSlashes On` in every `<VirtalHost>` container.
The documentation for how the different configuration sections are merged says:
Sections inside `<VirtualHost>` sections are applied after the corresponding sections outside the virtual host definition. This allows virtual hosts to override the main server configuration.
Problem
I'm currently trying to place a URL within a URL. For example: ``` http://example.com/url/http%3A%2F%2Fwww.url2.com ``` I'm aware that I have to encode the URL, which I have done, but now I am getting a `404` error back from the server rather than my app. I think my problem lies with apache and can be fixed with the `AllowEncodedSlashes On` directive. I've tried putting the directive at the bottom of the httpd.conf to no effect, and am unsure what to do next. Am I putting it in the right place? If so, does anyone have any other solutions?