<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi,<input name="virtru-metadata" type="hidden" value="{"email-policy":{"state":"closed","expirationUnit":"days","disableCopyPaste":false,"disablePrint":false,"disableForwarding":false,"enableNoauth":false,"persistentProtection":false,"expandedWatermarking":false,"expires":false,"isManaged":false},"attachments":{},"compose-id":"3","compose-window":{"secure":false}}"><div><br></div><div>I am able to achieve this by writing the following rule which creates a new variable with domain mydomain-com. </div><div> </div><div><div>if ($host ~* "(\w+)[-.](\w+)") {</div><div>      set $host_new "$1-$2";</div><div>    }</div></div><div><br></div><div>However, its not working for any subdomain like <a href="http://work.mydomain.com">work.mydomain.com</a> , i tried following configs to cover subdomains e.g work-mydomain-com but it didn't worked:</div><div><br></div><div>if ($host ~* "(\w+)[-.](\w+)[-.](\w+)") {</div><div>      set $host_new "$1-$2-$3";</div><div>    }</div><div> <br></div><div>======================================================</div><div>Any clue where am i wrong?</div></div></div></div><br><div class="gmail_quote" style=""><div dir="ltr" class="gmail_attr">On Sun, May 12, 2019 at 3:01 PM shahzaib mushtaq <<a href="mailto:shahzaib.cb@gmail.com">shahzaib.cb@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Hi,<div><br></div><div>We've running nginx as reverse proxy for backend domain named "<a href="http://mydomain.com" target="_blank">mydomain.com</a>". On proxy server we've setup vhost that covers domain and all subdomains *.<a href="http://mydomain.com" target="_blank">mydomain.com</a>.</div><div><br></div><div>What we need is that if user request to any subdomain like <a href="http://work.mydomain.com" target="_blank">work.mydomain.com</a>, he should be proxied to single backend <a href="http://mydomain.com" target="_blank">mydomain.com</a> but all underline links e.g css/js should be changed to <b><a href="http://work-mydomain-com.newdomain.com" target="_blank">work-mydomain-com.newdomain.com</a></b> . If second user requests <a href="http://nginx.mydomain.com" target="_blank">nginx.mydomain.com</a>, he should be proxied back to single backend <b><a href="http://mydomain.com" target="_blank">mydomain.com</a></b> while underline links css/js should be changed to <b><a href="http://nginx-mydomain-com.newdomain.com" target="_blank">nginx-mydomain-com.newdomain.com</a>.</b></div><div><br></div><div>As you can see we want all dots in domain/subdomain to be changed to hyphen (-).</div><div><br></div><div>I am able to change css/js links using sub_filter to <a href="http://work.mydomain.com.newdomain.com" target="_blank">work.mydomain.com.newdomain.com</a> by making use of $host param but i am struggling on changing it to hyphens.</div><div><br></div><div>Please check this nginx config and advise on how to change hostname from dots to hyphen in sub_filter e.g:</div><div><br></div><div><a href="http://mydomain.com" target="_blank">mydomain.com</a> ==> <a href="http://mydomain-com.newdomain.com" target="_blank">mydomain-com.newdomain.com</a><br><a href="http://work.mydomain.com" target="_blank">work.mydomain.com</a> ==> <a href="http://work-mydomain-com.newdomain.com" target="_blank">work-mydomain-com.newdomain.com</a></div><div><a href="http://nginx.mydomain.com" target="_blank">nginx.mydomain.com</a> ==> <a href="http://nginx-mydomain-com.newdomain.com" target="_blank">nginx-mydomain-com.newdomain.com</a></div><div><br></div><div>====================================================</div><div><br></div><div><div>upstream server {</div><div>        server <a href="http://10.10.10.10:443" target="_blank">10.10.10.10:443</a>;</div><div><br></div><div>}</div><div>server {</div><div>    listen      80;</div><div>    listen 443 ssl http2;</div><div>    ssl_certificate /etc/ssl/certs/mydomain/mydomain.crt;</div><div>    ssl_certificate_key /etc/ssl/certs/mydomain/privkey1.pem;</div><div>    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;</div><div>    ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';</div><div>    ssl_prefer_server_ciphers on;</div><div>    server_name <a href="http://mydomain.com" target="_blank">mydomain.com</a> *.<a href="http://mydomain.com" target="_blank">mydomain.com</a>;</div><div><br></div><div><br></div><div><br></div><div>    location / {</div><div><br></div><div>        proxy_set_header Accept-Encoding "";</div><div>        #subs_filter_types text/css text/xml text/css;</div><div>        sub_filter "<a href="https://mydomain.com" target="_blank">https://mydomain.com</a>" "https://$<a href="http://host.newdomain.com" target="_blank">host.newdomain.com</a>";</div><div><br></div><div>        sub_filter_once off;</div><div>        proxy_pass <a href="https://server" target="_blank">https://server</a>;</div><div>        proxy_set_header HOST <a href="http://mydomain.com" target="_blank">mydomain.com</a>;</div><div>    }</div><div>}</div></div><div><br></div></div></div>
</blockquote></div></div>