aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2024-12-12 15:42:17 +0100
committerBjørn Erik Pedersen <[email protected]>2024-12-12 21:47:03 +0100
commit75ad9cdaaba5e2c13582cd95bc77fb1b570e0b75 (patch)
treee1d7ced0347c5cfcd3a0515f9b5244f898426190
parente293e7ca6dcc34cded7eb90a644b5c720c2179cf (diff)
downloadhugo-75ad9cdaaba5e2c13582cd95bc77fb1b570e0b75.tar.gz
hugo-75ad9cdaaba5e2c13582cd95bc77fb1b570e0b75.zip
Add config option disableDefaultLanguageRedirect
Fixes #13133
-rw-r--r--config/allconfig/allconfig.go3
-rw-r--r--hugolib/config_test.go23
-rw-r--r--hugolib/site_render.go3
3 files changed, 29 insertions, 0 deletions
diff --git a/config/allconfig/allconfig.go b/config/allconfig/allconfig.go
index b158d8a90..be4480f45 100644
--- a/config/allconfig/allconfig.go
+++ b/config/allconfig/allconfig.go
@@ -505,6 +505,9 @@ type RootConfig struct {
// Set this to true to put all languages below their language ID.
DefaultContentLanguageInSubdir bool
+ // Disable generation of redirect to the default language when DefaultContentLanguageInSubdir is enabled.
+ DisableDefaultLanguageRedirect bool
+
// Disable creation of alias redirect pages.
DisableAliases bool
diff --git a/hugolib/config_test.go b/hugolib/config_test.go
index c9db0d2f0..c0bfde37d 100644
--- a/hugolib/config_test.go
+++ b/hugolib/config_test.go
@@ -1339,6 +1339,29 @@ Home.
b.Assert(len(b.H.Sites), qt.Equals, 1)
}
+func TestDisableDefaultLanguageRedirect(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+defaultContentLanguageInSubdir = true
+disableDefaultLanguageRedirect = true
+[languages]
+[languages.en]
+title = "English Title"
+[languages.sv]
+title = "Swedish Title"
+-- layouts/index.html --
+Home.
+
+
+`
+ b := Test(t, files)
+
+ b.Assert(len(b.H.Sites), qt.Equals, 2)
+ b.AssertFileExists("public/index.html", false)
+}
+
func TestLoadConfigYamlEnvVar(t *testing.T) {
defaultEnv := []string{`HUGO_OUTPUTS=home: ['json']`}
diff --git a/hugolib/site_render.go b/hugolib/site_render.go
index 83f2fce89..e5b2b62ab 100644
--- a/hugolib/site_render.go
+++ b/hugolib/site_render.go
@@ -334,6 +334,9 @@ func (s *Site) renderAliases() error {
// renderMainLanguageRedirect creates a redirect to the main language home,
// depending on if it lives in sub folder (e.g. /en) or not.
func (s *Site) renderMainLanguageRedirect() error {
+ if s.conf.DisableDefaultLanguageRedirect {
+ return nil
+ }
if s.h.Conf.IsMultihost() || !(s.h.Conf.DefaultContentLanguageInSubdir() || s.h.Conf.IsMultilingual()) {
// No need for a redirect
return nil