diff --git a/lib/plugins/system/htmlparser/htmlparser.js b/lib/plugins/system/htmlparser/htmlparser.js
index dfd79fa9e..fccbf29d2 100644
--- a/lib/plugins/system/htmlparser/htmlparser.js
+++ b/lib/plugins/system/htmlparser/htmlparser.js
@@ -20,7 +20,8 @@ export default {
var options2 = {...options, ...{
followRedirect: !!options.followHTTPRedirect,
- reuseCookies: !!options.followHTTPRedirect
+ reuseCookies: !!options.followHTTPRedirect,
+ allowPrerender: true
}};
options.registerFetch({
diff --git a/lib/utils.js b/lib/utils.js
index c4c839f16..5dbe9a4ab 100644
--- a/lib/utils.js
+++ b/lib/utils.js
@@ -95,9 +95,14 @@ export function prepareRequestOptions(request_options, options) {
var proxy = (options && options.proxy) || getCustomProxyForUri(uri, options);
if (proxy) {
- if (proxy.prerender && CONFIG.PRERENDER_URL) {
+ if (proxy.prerender && CONFIG.PRERENDER_URL && options?.allowPrerender) {
request_options.uri = CONFIG.PRERENDER_URL + encodeURIComponent(uri);
+ // Use string `proxy.prerender` as additional prerender param.
+ if (typeof proxy.prerender === 'string') {
+ request_options.uri += (request_options.uri.indexOf('?') > -1 ? '&' : '?' ) + `prerender=${proxy.prerender}`;
+ }
+
} else if (proxy.proxy && CONFIG.PROXY_URL) {
request_options.uri = /{url}/.test(CONFIG.PROXY_URL)
? CONFIG.PROXY_URL.replace(/{url}/, encodeURIComponent(uri))
@@ -1230,7 +1235,7 @@ var getUriStatusPrivate = function(uri, options, cb) {
},
timeout: options.timeout || CONFIG.RESPONSE_TIMEOUT,
follow: CONFIG.MAX_REDIRECTS
- })
+ });
try {
fetchStream(request_options)