[Bug 1018285] [NEW] Redirects incorrectly set Location header in response when Host header is set in request

Michael Williamson michael.williamson at red-gate.com
Wed Jun 27 08:22:14 UTC 2012


Public bug reported:

When Apache sends a 301 redirect and the Host header in the request has
an implicit port, it incorrectly uses the Host header of the request and
the port that Apache is running on to set the Location header.

Steps to reproduce:
  * Get Apache to serve up a directory with a sub-directory "blah" on a particular port, say, 8080.
  * Access the URL "http://localhost:8080/blah" (note no trailing slash) with the Host header "Host: example.com".
  * Note that the Location header in the response is "Location: http://example.com:8080/blah/" rather than "Location http://example.com/blah/" as it should be.

Expected behaviour:
  * A location header that uses the Host header only, rather than combining the Host header and the port Apache is running on.

If the Host header has a port explicitly set, Apache behaves correctly
e.g. if the Host header is "Host: example.com:8090", then the Location
header in the response is "Location: http://example.com:8090/blah/".

$ apt-cache policy apache2
apache2:
  Installed: 2.2.22-1ubuntu1
  Candidate: 2.2.22-1ubuntu1
  Version table:
 *** 2.2.22-1ubuntu1 0
        500 http://gb.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
        100 /var/lib/dpkg/status


$ lsb_release -rd
Description:    Ubuntu 12.04 LTS
Release:        12.04

** Affects: apache2 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to apache2 in Ubuntu.
https://bugs.launchpad.net/bugs/1018285

Title:
  Redirects incorrectly set Location header in response when Host header
  is set in request

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1018285/+subscriptions



More information about the Ubuntu-server-bugs mailing list