summaryrefslogtreecommitdiffstats
path: root/helpers/url.go
diff options
context:
space:
mode:
Diffstat (limited to 'helpers/url.go')
-rw-r--r--helpers/url.go19
1 files changed, 17 insertions, 2 deletions
diff --git a/helpers/url.go b/helpers/url.go
index 1d87cf89f..1bc6042e6 100644
--- a/helpers/url.go
+++ b/helpers/url.go
@@ -169,8 +169,15 @@ func AbsURL(in string, addLanguage bool) string {
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 != "" {
+ if prefix != "" && !hasPrefix {
addSlash := in == "" || strings.HasSuffix(in, "/")
in = path.Join(prefix, in)
@@ -224,7 +231,15 @@ func RelURL(in string, addLanguage bool) string {
if addLanguage {
prefix := getLanguagePrefix()
- 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, "/")
u = path.Join(prefix, u)