[PATCH] Include query string in Location redirects

Mr Allwyn Fernandes <[email protected]> Tue, 11 Sep 2007 05:18:34 +1000
Newsgroups gmane.network.mathopd
Organization Stobor Pty Ltd
Message-ID <[email protected]>
--Boundary-00=_KiZ5Gd9TFkVapx0
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi all,

I noticed that when using the "Location http://" syntax for redirects, Mathopd 
doesn't include the query string in the redirected url. For example, using 
the configuration:

Host example.net
Control {
	Alias /
	Location http://example.com
}

if you access the url:

http://example.net/pages/index.php?q=4

you are redirected to:

http://example.com/pages/index.php

Since I needed the query string to be passed to the redirected page, I've 
hacked up a quick patch which adds it back in to the destination url:

http://example.com/pages/index.php?q=4

If there is no query string, then no change is made. (Specifically, the 
question mark is not added in, either.) So http://example.net/sample.html 
redirects to http://example.com/sample.html

It's a fairly straightforward change, and I've included patches for both 1.5p6 
and 1.6b9.

The patch can be applied as 

/tmp/mathopd-1.6b9$ gunzip QueryStringInRedirect.1.6b9.diff.gz | patch -p1 

If there are any problems, questions or comments, please don't hesitate to let 
me know.

Cheers,

Allwyn.

-- 
Allwyn Fernandes
Director
Stobor Pty Ltd

Mobile: + 61 430 436 758
LinkedIn: http://www.linkedin.com/in/AllwynFernandes

--Boundary-00=_KiZ5Gd9TFkVapx0
Content-Type: text/x-diff;
  charset="us-ascii";
  name="QueryStringInRedirect.1.5p6.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="QueryStringInRedirect.1.5p6.diff"

ZGlmZiAtcnUgbWF0aG9wZC0xLjVwNi9zcmMvcmVxdWVzdC5jIG1hdGhvcGQtMS41cXMvc3JjL3Jl
cXVlc3QuYwotLS0gbWF0aG9wZC0xLjVwNi9zcmMvcmVxdWVzdC5jCTIwMDctMDctMjEgMjA6NDg6
MDAuMDAwMDAwMDAwICsxMDAwCisrKyBtYXRob3BkLTEuNXFzL3NyYy9yZXF1ZXN0LmMJMjAwNy0w
OS0xMSAwNDo1MDo0MS4wODY3MjQ4NDggKzEwMDAKQEAgLTE0OTcsOSArMTQ5NywxNCBAQAogCQkJ
cmV0dXJuIC0xOwogCQlicmVhazsKIAljYXNlIDMwMjoKLQkJaWYgKHItPmxvY2F0aW9uKQotCQkJ
aWYgKHBvb2xfcHJpbnQocCwgIkxvY2F0aW9uOiAlc1xyXG4iLCByLT5sb2NhdGlvbikgPT0gLTEp
Ci0JCQkJcmV0dXJuIC0xOworCQlpZiAoci0+bG9jYXRpb24pIHsKKwkJCWlmIChyLT5hcmdzKSB7
CisJCQkJaWYgKHBvb2xfcHJpbnQocCwgIkxvY2F0aW9uOiAlcz8lc1xyXG4iLCByLT5sb2NhdGlv
biwgci0+YXJncykgPT0gLTEpCisJCQkJCXJldHVybiAtMTsKKwkJCX0gZWxzZSB7CisJCQkJaWYg
KHBvb2xfcHJpbnQocCwgIkxvY2F0aW9uOiAlc1xyXG4iLCByLT5sb2NhdGlvbikgPT0gLTEpCisJ
CQkJCXJldHVybiAtMTsKKwkJCX0KIAkJYnJlYWs7CiAJY2FzZSA0MDE6CiAJCWlmIChyLT5jICYm
IHItPmMtPnJlYWxtKQpAQCAtMTU1Miw4ICsxNTU3LDEzIEBACiAJCXJldHVybiAtMTsKIAlzd2l0
Y2ggKHItPnN0YXR1cykgewogCWNhc2UgMzAyOgotCQlpZiAocG9vbF9wcmludChwLCAiVGhpcyBk
b2N1bWVudCBoYXMgbW92ZWQgdG8gVVJMIDxhIGhyZWY9XCIlc1wiPiVzPC9hPi5cbiIsIHItPmxv
Y2F0aW9uLCByLT5sb2NhdGlvbikgPT0gLTEpCi0JCQlyZXR1cm4gLTE7CisJCWlmIChyLT5hcmdz
KSB7CisJCQlpZiAocG9vbF9wcmludChwLCAiVGhpcyBkb2N1bWVudCBoYXMgbW92ZWQgdG8gVVJM
IDxhIGhyZWY9XCIlcz8lc1wiPiVzPyVzPC9hPi5cbiIsIHItPmxvY2F0aW9uLCByLT5hcmdzLCBy
LT5sb2NhdGlvbiwgci0+YXJncykgPT0gLTEpCisJCQkJcmV0dXJuIC0xOworCQl9IGVsc2Ugewor
CQkJaWYgKHBvb2xfcHJpbnQocCwgIlRoaXMgZG9jdW1lbnQgaGFzIG1vdmVkIHRvIFVSTCA8YSBo
cmVmPVwiJXNcIj4lczwvYT4uXG4iLCByLT5sb2NhdGlvbiwgci0+bG9jYXRpb24pID09IC0xKQor
CQkJCXJldHVybiAtMTsKKwkJfQogCQlicmVhazsKIAljYXNlIDQwMToKIAkJaWYgKHBvb2xfcHJp
bnQocCwgIllvdSBuZWVkIHByb3BlciBhdXRob3JpemF0aW9uIHRvIHVzZSB0aGlzIHJlc291cmNl
LlxuIikgPT0gLTEpCg==

--Boundary-00=_KiZ5Gd9TFkVapx0
Content-Type: application/x-gzip;
  name="QueryStringInRedirect.1.6b9.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="QueryStringInRedirect.1.6b9.diff.gz"

H4sICCmU5UYAA1F1ZXJ5U3RyaW5nSW5SZWRpcmVjdC4xLjZiOS5kaWZmAL1UXU+DMBR9Zr/iZsmW
GSijwHSg+/gBezL6YLLE1K4T4kaxH5po/O+2jJltEjQxkRCg5/bec+49Dat8vQYkNGyJyni5Qtg/
f0iGUtChYM+aSeXTw9izPI51EEJtuU4YBBfI3CGGMEhjnOLID/YXuNg8O67rtnHUNRKEMQRxOrpI
o8THSRiG4+Qc1zXmc0A4HodeYgD7xjHM5x1wHEcwpUVhwpd2+SAYebJflEgGURCmHeQ4+RoGAk03
nBKV8+LMYhVYcr65L0VeqEHpQXdRb0ihJ5diWXQ9OEyDycTw7LIPed3vDPBu0T1MxKPcQz/xzpqo
q8WuSq2hKnUiwvkAtjFt/46opcHm4t/nGwc4tWjdJoV+39ajaGq2bbZnO99GceSNjW+jeOzhqPbt
yDb5miuaVTWkIkpXw2rw8KSbmyyXsOJUb1mhICMStvyFrUBxuL1ewBWBTLD1ZNk1zXanPXk1JFO/
cbSNFjc6fGjl3yTNalWzNmGW7jcn4Vjr0Tn438E1qWk/OCfa7riGghkxpeAlE0C0+XWI/K2isQq1
yVe2AcEk14Iyq+yL/xPZoWjT8wQAAA==

--Boundary-00=_KiZ5Gd9TFkVapx0
Content-Type: application/x-gzip;
  name="QueryStringInRedirect.1.5p6.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="QueryStringInRedirect.1.5p6.diff.gz"

H4sICMWS5UYAA1F1ZXJ5U3RyaW5nSW5SZWRpcmVjdC4xLjVwNi5kaWZmAL1UXUvDMBR97n7FZeBQ
unRJbd1W9/UD9iT6IAwkZpktbk2XDwXF/27SdbLNUgXBUtrm3txzzr0ndJmtVoCkgQ3VqSiWiARx
cdVTkvUk3xqudMAOc1t1nGshhJpqvRDjPrJ3SCDESTRIMA7w/gKf2GfL9/0mjgpjiAgBHCWxhSEB
Hlz1w2gQDSqM2QwQiYb97tAG3JtEMJu1wPM8ybWRuU1fu+Wj5PTZfTGqOFziMGkhz8tWcC7RZC0Y
1ZnIL1ysDBZCrB8KmeX6vOhCe15tSOBMLeQib3fhsAzGY8uzqz7k9b8zwLuL7sNUPql96CfeaR11
udihVBpKqBMR3gfwtW37d0QNDdaDf59vhEniolWbDDodh8fQxG5bby52vsVx2HVGxrH17bLy7cg2
9ZpplpYYSlNtymHVeHjSzW2aKVgKZjY815BSBRvxwpegBdzdzGFEIZV8NV60bbPtyZka9egkqB1t
rcW1Dh9a+TdJ00rVtEmYo/vNSTjWenQO/ndwdWqaD86JtnthIOdWTCFFwSVQY38dMnsraZxCY+u1
a0ByJYxk3Cn74v8E3VT0M/MEAAA=

--Boundary-00=_KiZ5Gd9TFkVapx0--