Skip to content

Commit 095e24f

Browse files
committed
don't include '?' if no query already exists
1 parent 5087768 commit 095e24f

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/web/rustdoc.rs

+12-7
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,18 @@ pub fn rustdoc_redirector_handler(req: &mut Request) -> IronResult<Response> {
9898
vers: &str,
9999
target_name: &str)
100100
-> IronResult<Response> {
101-
let url = ctry!(Url::parse(&format!("{}/{}/{}/{}/?{}",
102-
redirect_base(req),
103-
name,
104-
vers,
105-
target_name,
106-
req.url.query().unwrap_or_default()
107-
)[..]));
101+
let mut url_str = format!(
102+
"{}/{}/{}/{}/",
103+
redirect_base(req),
104+
name,
105+
vers,
106+
target_name,
107+
);
108+
if let Some(query) = req.url.query() {
109+
url_str.push('?');
110+
url_str.push_str(query);
111+
}
112+
let url = ctry!(Url::parse(&url_str[..]));
108113
let mut resp = Response::with((status::Found, Redirect(url)));
109114
resp.headers.set(Expires(HttpDate(time::now())));
110115

0 commit comments

Comments
 (0)