ref: 74ffb45fbe2c121881b2386fc3210f8b1c6bd952
parent: f53145b2748067a9d50ab57efc6423d7568c237c
author: Bjørn Erik Pedersen <[email protected]>
date: Tue Sep 13 19:44:16 EDT 2016
helpers: Improve the language prefix logic See #2444
--- a/helpers/url.go
+++ b/helpers/url.go
@@ -169,20 +169,22 @@
if addLanguage {
prefix := getLanguagePrefix()
- hasPrefix := false
- // avoid adding language prefix if already present
- if strings.HasPrefix(in, "/") {
- hasPrefix = strings.HasPrefix(in[1:], prefix)
- } else {
- hasPrefix = strings.HasPrefix(in, prefix)
- }
+ if prefix != "" {
+ hasPrefix := false
+ // avoid adding language prefix if already present
+ if strings.HasPrefix(in, "/") {
+ hasPrefix = strings.HasPrefix(in[1:], prefix)
+ } else {
+ hasPrefix = strings.HasPrefix(in, prefix)
+ }
- if prefix != "" && !hasPrefix {
- addSlash := in == "" || strings.HasSuffix(in, "/")
- in = path.Join(prefix, in)
+ if !hasPrefix {
+ addSlash := in == "" || strings.HasSuffix(in, "/")
+ in = path.Join(prefix, in)
- if addSlash {
- in += "/"
+ if addSlash {
+ in += "/"
+ }
}
}
}
@@ -231,21 +233,23 @@
if addLanguage {
prefix := getLanguagePrefix()
- hasPrefix := false
- // avoid adding language prefix if already present
- if strings.HasPrefix(in, "/") {
- hasPrefix = strings.HasPrefix(in[1:], prefix)
- } else {
- hasPrefix = strings.HasPrefix(in, prefix)
- }
+ if prefix != "" {
+ hasPrefix := false
+ // avoid adding language prefix if already present
+ if strings.HasPrefix(in, "/") {
+ hasPrefix = strings.HasPrefix(in[1:], prefix)
+ } else {
+ hasPrefix = strings.HasPrefix(in, prefix)
+ }
- if prefix != "" && !hasPrefix {
- hadSlash := strings.HasSuffix(u, "/")
+ if !hasPrefix {
+ hadSlash := strings.HasSuffix(u, "/")
- u = path.Join(prefix, u)
+ u = path.Join(prefix, u)
- if hadSlash {
- u += "/"
+ if hadSlash {
+ u += "/"
+ }
}
}
}