@@ -40,6 +40,23 @@ is_object_unsuspended 'user' 'USER' "$user"
4040is_object_valid ' web' ' DOMAIN' " $domain "
4141is_object_unsuspended ' web' ' DOMAIN' " $domain "
4242
43+
44+ scheme=0
45+ if [[ " $3 " =~ http://| https:// ]]; then
46+ scheme=1
47+ regex=' (https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
48+ if ! [[ " $3 " =~ $regex ]]; then
49+ echo " Invalid redirect"
50+ exit 2;
51+ fi
52+ else
53+ regex=' [-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
54+ if ! [[ " $3 " =~ $regex ]]; then
55+ echo " Invalid redirect"
56+ exit 2;
57+ fi
58+ fi
59+
4360# Perform verification if read-only mode is enabled
4461check_hestia_demo_mode
4562
@@ -55,12 +72,19 @@ if [ "$WEB_SYSTEM" = 'nginx' ] || [ "$PROXY_SYSTEM" = 'nginx' ]; then
5572fi
5673# Insert redirect commands
5774if [ ! -z " $PROXY_SYSTEM " ] || [ " $WEB_SYSTEM " = ' nginx' ]; then
58- echo " if (\$ host != \" $redirect \" ) {" > $conf
59- echo " return $code \$ scheme://$redirect \$ request_uri;" >> $conf
60- echo " }" >> $conf
61-
62- if [ ! -e " $sconf " ]; then
63- ln -s " $conf " " $sconf "
75+ if [ " $scheme " = 1 ]; then
76+ echo " return $code $redirect \$ request_uri;" > $conf
77+ if [ ! -e " $sconf " ]; then
78+ ln -s " $conf " " $sconf "
79+ fi
80+ else
81+ echo " if (\$ host != \" $redirect \" ) {" > $conf
82+ echo " return $code \$ scheme://$redirect \$ request_uri;" >> $conf
83+ echo " }" >> $conf
84+
85+ if [ ! -e " $sconf " ]; then
86+ ln -s " $conf " " $sconf "
87+ fi
6488 fi
6589else
6690 echo " Non supported please use .htaccess instead"
7296# ----------------------------------------------------------#
7397
7498if [ -z " $REDIRECT " ]; then
75- add_object_key " web" ' DOMAIN' " $domain " ' REDIRECT' ' STATS_CRYPT '
76- add_object_key " web" ' DOMAIN' " $domain " ' REDIRECT_CODE' ' STATS_CRYPT '
99+ add_object_key " web" ' DOMAIN' " $domain " ' REDIRECT' ' U_DISK '
100+ add_object_key " web" ' DOMAIN' " $domain " ' REDIRECT_CODE' ' U_DISK '
77101fi
78102
79103update_object_value ' web' ' DOMAIN' " $domain " ' $REDIRECT' " $redirect "
80-
104+ update_object_value ' web ' ' DOMAIN ' " $domain " ' $REDIRECT_CODE ' " $code "
81105# Restart web server
82106$BIN /v-restart-web
83107check_result $? " Web restart failed" > /dev/null
0 commit comments