Skip to content

Commit e72902f

Browse files
committed
don't include '?' if no query already exists
1 parent 86ee1e6 commit e72902f

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/web/rustdoc.rs

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

0 commit comments

Comments
 (0)