From 480635d1315690ea56610e679e8294a8736f94f1 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 17 Jun 2020 18:38:26 +0900 Subject: [PATCH] Fix relative URLs in form actions and other HTML attributes --- classes/display/HTMLDisplayHandler.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/classes/display/HTMLDisplayHandler.php b/classes/display/HTMLDisplayHandler.php index 8023f74fa..1ac2f19cd 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -204,10 +204,13 @@ class HTMLDisplayHandler // handles a relative path generated by using the rewrite module if(Context::isAllowRewrite()) { - $pattern = '/src=("|\'){1}(?:\.\/)?((?:files\/(?:attach|cache|faceOff|member_extra_info|thumbnails)|addons|common|(?:m\.)?layouts|modules|widgets|widgetstyle)\/[^"\']+)("|\'){1}/s'; + $pattern = '/(action|src|href)=(["\'])\.\/([^"\']*)(["\'])/s'; + $output = preg_replace($pattern, '$1=$2' . \RX_BASEURL . '$3$4', $output); + + $pattern = '/src=(["\'])((?:files\/(?:attach|cache|faceOff|member_extra_info|thumbnails)|addons|common|(?:m\.)?layouts|modules|widgets|widgetstyle)\/[^"\']+)(["\'])/s'; $output = preg_replace($pattern, 'src=$1' . \RX_BASEURL . '$2$3', $output); - $pattern = '/href=("|\'){1}(\?[^"\']+)/s'; + $pattern = '/href=(["\'])(\?[^"\']+)/s'; $output = preg_replace($pattern, 'href=$1' . \RX_BASEURL . '$2', $output); if(Context::get('vid'))