force www redirect
Now we have a command to force redirections to www or non-www.
This commit is contained in:
parent
31bb518b4e
commit
b26f7ec9b6
5 changed files with 88 additions and 9 deletions
|
@ -67,12 +67,13 @@ site_ssl_on() {
|
|||
if [[ -a /etc/letsencrypt/live/$root/fullchain.pem ]]; then
|
||||
sudo sed -i '/listen 80/c \ listen 443 ssl http2;' /etc/nginx/sites-available/$domain
|
||||
sudo sed -i '/listen \[::\]:80/c \ listen [::]:443 ssl http2;' /etc/nginx/sites-available/$domain
|
||||
sudo sed -i '/headers-html.conf/a \ include common/headers-https.conf;' /etc/nginx/sites-available/$domain
|
||||
sudo sed -i '/headers-http.conf/a \ include common/headers-https.conf;' /etc/nginx/sites-available/$domain
|
||||
sudo sed -i '/server_name /r /opt/webinoly/templates/template-site-ssl' /etc/nginx/sites-available/$domain
|
||||
sudo sed -i "/WebinolySSLstart/,/WebinolySSLend/{s/domain.com/$domain/}" /etc/nginx/sites-available/$domain
|
||||
|
||||
# HTTP to HTTPS Redirection
|
||||
local sername=$(grep -w "server_name .*;" /etc/nginx/sites-available/$domain)
|
||||
local sername="server_name $domain www.$domain;"
|
||||
[[ $subdomflag == 1 ]] && sername="server_name $domain;"
|
||||
sudo sed -i '1r /opt/webinoly/templates/template-site-sslredirect' /etc/nginx/sites-available/$domain
|
||||
sudo sed -i "/#server_name;/c \ $sername" /etc/nginx/sites-available/$domain
|
||||
|
||||
|
@ -107,7 +108,7 @@ site_ssl_off() {
|
|||
answer=="N"
|
||||
else
|
||||
echo "${blu}"
|
||||
echo " Do you want to delete your certificate files [y/N]? "
|
||||
echo "Do you want to delete your certificate files [y/N]? "
|
||||
while read -r -n 1 -s answer; do
|
||||
answer=${answer:-n}
|
||||
[[ $answer = [YyNn] ]] && break
|
||||
|
@ -120,7 +121,7 @@ site_ssl_off() {
|
|||
rm -rf /etc/letsencrypt/renewal/${domain}.conf
|
||||
rm -rf /etc/letsencrypt/archive/${domain}
|
||||
echo "${gre}"
|
||||
echo " Certificate for your site $domain has been completely removed!"
|
||||
echo "Certificate for your site $domain has been completely removed!"
|
||||
echo "${end}"
|
||||
fi
|
||||
echo "${gre}SSL have been successfully disabled for site $domain!${end}"
|
||||
|
|
62
lib/sites
62
lib/sites
|
@ -525,3 +525,65 @@ createsite() {
|
|||
|
||||
echo "${gre}Site $domain has been successfully created!${end}"
|
||||
}
|
||||
|
||||
|
||||
force_redirect() {
|
||||
if ! [[ $value =~ ^(www|root|off)$ ]]; then
|
||||
echo "${red}Please, enter a valid argument!${end}"
|
||||
exit 1
|
||||
fi
|
||||
if [[ $subdomflag == 1 ]]; then
|
||||
echo "${red}Please, use the main/root domain, Force-Redirection should not be used in Subdomains!${end}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local rediron=$( grep -F "WebinolyWWWredirectStart" /etc/nginx/sites-available/$domain )
|
||||
local sername="server_name $domain www.$domain"
|
||||
cp /opt/webinoly/templates/template-site-wwwredirect /tmp/template-site-wwwredirect
|
||||
|
||||
case $value in
|
||||
"www")
|
||||
[[ -n $rediron ]] && sudo sed -i '/WebinolyWWWredirectStart/,/WebinolyWWWredirectEnd/{/.*/d}' /etc/nginx/sites-available/$domain
|
||||
sudo sed -i "/#server_name;/c \ server_name $domain;" /tmp/template-site-wwwredirect
|
||||
sudo sed -i "/#return 301;/c \ return 301 \$scheme://www.${domain}\$request_uri;" /tmp/template-site-wwwredirect
|
||||
sudo sed -i "/server_name /c \ server_name www.$domain;" /etc/nginx/sites-available/$domain
|
||||
echo "${gre}Force-Redirection to WWW has been successfully enabled!${end}"
|
||||
;;
|
||||
"root")
|
||||
[[ -n $rediron ]] && sudo sed -i '/WebinolyWWWredirectStart/,/WebinolyWWWredirectEnd/{/.*/d}' /etc/nginx/sites-available/$domain
|
||||
sudo sed -i "/#server_name;/c \ server_name www.$domain;" /tmp/template-site-wwwredirect
|
||||
sudo sed -i "/#return 301;/c \ return 301 \$scheme://${domain}\$request_uri;" /tmp/template-site-wwwredirect
|
||||
sudo sed -i "/server_name /c \ server_name $domain;" /etc/nginx/sites-available/$domain
|
||||
echo "${gre}Force-Redirection to non-WWW has been successfully enabled!${end}"
|
||||
;;
|
||||
"off")
|
||||
if [[ -n $rediron ]]; then
|
||||
sudo sed -i '/WebinolyWWWredirectStart/,/WebinolyWWWredirectEnd/{/.*/d}' /etc/nginx/sites-available/$domain
|
||||
sudo sed -i "/server_name /c \ $sername;" /etc/nginx/sites-available/$domain
|
||||
echo "${gre}Force-Redirection has been successfully disabled!${end}"
|
||||
else
|
||||
echo "${red}Force-Redirect is already disabled for site $domain!${end}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If SSL is enabled insert after that - First redirect should be to HTTPS due to HSTS.
|
||||
isssl=$( grep -F "ssl on;" /etc/nginx/sites-available/$domain )
|
||||
if [[ -z $isssl && $value =~ ^(www|root)$ ]]; then
|
||||
sudo sed -i '1r /tmp/template-site-wwwredirect' /etc/nginx/sites-available/$domain
|
||||
elif [[ -n $isssl && $value =~ ^(www|root)$ ]]; then
|
||||
sudo sed -i '/listen 80/c \ listen 443 ssl http2;' /tmp/template-site-wwwredirect
|
||||
sudo sed -i '/listen \[::\]:80/c \ listen [::]:443 ssl http2;' /tmp/template-site-wwwredirect
|
||||
sudo sed -i '/headers-http.conf/a \ include common/headers-https.conf;' /tmp/template-site-wwwredirect
|
||||
|
||||
sudo sed -i '/server_name /r /opt/webinoly/templates/template-site-ssl' /tmp/template-site-wwwredirect
|
||||
sudo sed -i "/WebinolySSLstart/,/WebinolySSLend/{s/domain.com/$domain/}" /tmp/template-site-wwwredirect
|
||||
|
||||
sudo sed -i "/WebinolySSLredirectStart/,/WebinolySSLredirectEnd/s/\(server_name\).*$/$sername/" /etc/nginx/sites-available/$domain
|
||||
sudo sed -i '/WebinolySSLredirectEnd/r /tmp/template-site-wwwredirect' /etc/nginx/sites-available/$domain
|
||||
fi
|
||||
|
||||
sudo rm /tmp/template-site-wwwredirect
|
||||
|
||||
}
|
||||
|
||||
|
|
11
plugins/site
11
plugins/site
|
@ -35,7 +35,7 @@ if [[ $domain == "-mysql="* ]]; then
|
|||
value=$(echo "${domain}" | cut -d'=' -f 2 -s)
|
||||
domain=$(echo "${domain}" | cut -d'=' -f 1 -s)
|
||||
fi
|
||||
if [[ $type == "-parked="* || $type == "-proxy="* || $type == "-wp="* || $type == "-wpsubdir="* || $type == "-wpsubdom="* || $type == "-ssl-off="* || $type == "-mysql="* || $type == "-delete="* ]]; then
|
||||
if [[ $type == "-parked="* || $type == "-proxy="* || $type == "-wp="* || $type == "-wpsubdir="* || $type == "-wpsubdom="* || $type == "-ssl-off="* || $type == "-mysql="* || $type == "-delete="* || $type == "-force-redirect="* ]]; then
|
||||
value=$(echo "${type}" | cut -d'=' -f 2 -s)
|
||||
type=$(echo "${type}" | cut -d'=' -f 1 -s)
|
||||
fi
|
||||
|
@ -46,7 +46,7 @@ fi
|
|||
|
||||
|
||||
# Check if site is sub-domain
|
||||
if [[ -n $domain && $type =~ ^(-html|-php|-mysql|-wp|-wpsubdir|-wpsubdom|-parked|-proxy|-ssl-on)$ ]]; then
|
||||
if [[ -n $domain && $type =~ ^(-html|-php|-mysql|-wp|-wpsubdir|-wpsubdom|-parked|-proxy|-ssl-on|-force-redirect)$ ]]; then
|
||||
count=1
|
||||
while true; do
|
||||
tld=$(echo "${domain}" | rev | cut -d'.' -f -$count -s | rev)
|
||||
|
@ -339,10 +339,15 @@ elif [[ "$type" == "-cache" && -a /etc/nginx/sites-available/$domain ]]; then
|
|||
else
|
||||
echo "${red} Site $domain is not a WP site or FastCGI is already enabled!${end}"
|
||||
fi
|
||||
|
||||
|
||||
# Force www or non-www redirect (www, root, off)
|
||||
elif [[ "$type" == "-force-redirect" && -a /etc/nginx/sites-available/$domain ]]; then
|
||||
force_redirect
|
||||
|
||||
|
||||
# Catch ERROR
|
||||
elif [[ ! -a /etc/nginx/sites-available/$domain && $type =~ ^(-nocache|-cache|-delete|-off|-on|-ssl-on|-ssl-off)$ ]]; then
|
||||
elif [[ ! -a /etc/nginx/sites-available/$domain && $type =~ ^(-nocache|-cache|-delete|-off|-on|-ssl-on|-ssl-off|-force-redirect)$ ]]; then
|
||||
echo "${red}Site $domain doesn't exists!${end}"
|
||||
else
|
||||
echo "${red} Argument '${type}' is not a valid option! ${end}"
|
||||
|
|
10
templates/template-site-wwwredirect
Normal file
10
templates/template-site-wwwredirect
Normal file
|
@ -0,0 +1,10 @@
|
|||
# WebinolyWWWredirectStart - Force WWW or non-WWW redirect
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
#server_name;
|
||||
|
||||
include common/headers-http.conf;
|
||||
#return 301;
|
||||
}
|
||||
# WebinolyWWWredirectEnd
|
5
weby
5
weby
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Webinoly Installation Script.
|
||||
webyversion="1.4.1"
|
||||
webyversion="1.5.0-beta"
|
||||
|
||||
|
||||
# Check OS support
|
||||
|
@ -49,11 +49,12 @@ if [[ $2 == "-ver="* ]]; then
|
|||
sudo wget --timeout=15 -qrO $HOME/webinoly.tar https://qrok.es/webinoly?version=$ver
|
||||
sudo rm webinoly?version=$ver
|
||||
webyversion="$ver"
|
||||
[[ $ver == "beta" ]] && echo "[WARNING] You are installing a BETA version of Webinoly and it's not recommended for production enviroments. $(tput sgr0)"
|
||||
[[ $ver == "beta" ]] && echo "[WARNING] You are installing a BETA version of Webinoly and it's not recommended for production enviroments."
|
||||
else
|
||||
echo "[ERROR] Version not found or not available! ($code) $(tput sgr0)"
|
||||
exit 1
|
||||
fi
|
||||
echo $(tput sgr0)
|
||||
else
|
||||
sudo wget --timeout=15 -qrO $HOME/webinoly.tar https://qrok.es/wytar
|
||||
fi
|
||||
|
|
Loading…
Add table
Reference in a new issue