@@ -1761,11 +1761,11 @@ local function buildWebsite()
17611761 targetUrl = fixRelativeUrl(targetUrl)
17621762
17631763 b('\tRewriteCond %%{REQUEST_URI} "=%s"\n', url)
1764- b('\tRewriteRule .* "%s" [NE,R=301,L]\n', escapeRuleSub(targetUrl))
1764+ b('\tRewriteRule .* "%s" [NE,R=301,L]\n', escapeRuleSub(targetUrl, true ))
17651765 end
17661766
17671767 for url, targetUrl in pairsSorted(site._unwrittenRedirects) do
1768- -- @Copypaste from above.
1768+ -- Some @Copypaste from above.
17691769
17701770 -- Make absolute target URLs relative if possible.
17711771 if targetUrl:sub(1, #site.baseUrl.v) == site.baseUrl.v then
@@ -1778,16 +1778,16 @@ local function buildWebsite()
17781778 slug = fixRelativeUrl(slug)
17791779 targetUrl = fixRelativeUrl(targetUrl)
17801780
1781+ if query and not targetUrl:find("?", 1, true) then
1782+ targetUrl = targetUrl .. "?" -- This will make sure the query from the source URL doesn't carry over to the target URL.
1783+ end
1784+
17811785 b('\tRewriteCond %%{REQUEST_URI} "=%s"\n', slug)
17821786 if query then
17831787 b('\tRewriteCond %%{QUERY_STRING} "=%s"\n', query)
17841788 end
17851789
1786- b(
1787- '\tRewriteRule .* "%s%s" [NE,R=301,L]\n',
1788- escapeRuleSub(targetUrl),
1789- (not query or targetUrl:find("?", 1, true)) and "" or "?"
1790- )
1790+ b('\tRewriteRule .* "%s" [NE,R=301,L]\n', escapeRuleSub(targetUrl, true))
17911791 end
17921792
17931793 b("\n")
@@ -1809,7 +1809,7 @@ local function buildWebsite()
18091809 urlPrefix = fixRelativeUrl(urlPrefix)
18101810 b(
18111811 '\tRewriteCond %%{REQUEST_URI} "^%s"%s\n',
1812- escapeCondPat(urlPrefix),
1812+ escapeCondPat(urlPrefix, false ),
18131813 htaDenyAccess[i+1] and " [OR]" or ""
18141814 )
18151815 end
@@ -1826,13 +1826,13 @@ local function buildWebsite()
18261826 b('\t# Point to "%s" directory.\n', htaPrettyUrlDir)
18271827 b("\tRewriteCond %{REQUEST_FILENAME} !-f\n")
18281828 b('\tRewriteCond "%%{DOCUMENT_ROOT}%s%s/%%{REQUEST_URI}" -f\n', fixRelativeUrl"/", escapeTestStr(htaPrettyUrlDir))
1829- b('\tRewriteRule .* "%s%s/$0" [L]\n', fixRelativeUrl"/", escapeRuleSub(htaPrettyUrlDir))
1829+ b('\tRewriteRule .* "%s%s/$0" [L]\n', fixRelativeUrl"/", escapeRuleSub(htaPrettyUrlDir, false ))
18301830 b("\n")
18311831
18321832 b("\tRewriteCond %{REQUEST_FILENAME} !-f\n")
18331833 b("\tRewriteCond %{REQUEST_URI} !^/$\n")
18341834 b('\tRewriteCond "%%{DOCUMENT_ROOT}%s%s/%%{REQUEST_URI}/" -d\n', fixRelativeUrl"/", escapeTestStr(htaPrettyUrlDir))
1835- b('\tRewriteRule .* "%s%s/$0/" [L]\n', fixRelativeUrl"/", escapeRuleSub(htaPrettyUrlDir))
1835+ b('\tRewriteRule .* "%s%s/$0/" [L]\n', fixRelativeUrl"/", escapeRuleSub(htaPrettyUrlDir, false ))
18361836 b("\n")
18371837 end
18381838
0 commit comments