Leonardo
Leonardo

Reputation: 155

Point subdomain to it folder IIS

There's a way to point all my subdomains to the same name folder, using Windows Server | IIS - Rewrite Rule or Proxy?

Example:

subdomain1.domain.com ----> C:\customers\development\subdomain1

subdomain2.domain.com ----> C:\customers\development\subdomain2

subdomain3.domain.com ----> C:\customers\development\subdomain3

Is it possible do automatically?

I've tryied these web.config rules

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
             <rule name="rewrite" enabled="true" stopProcessing="true">
               <match url="(.*)" />
               <conditions>
                        <add input="{HTTP_HOST}" pattern="^(?!www\.)(.*)\example\.com$" />
               </conditions>
               <action type="Rewrite" url="/{C:1}/" appendQueryString="true" logRewrittenUrl="true" />
             </rule>
           </rules>
        </rewrite>
    </system.webServer>
</configuration>

Thanks in advance!

Upvotes: 1

Views: 242

Answers (1)

Jokies Ding
Jokies Ding

Reputation: 3494

URL rewrite is mainly used to rewrite URL not physical path. So you have to create a web app with root folder C:\customers\development and bind all subdomains to this IIS site. Then modify your rule to

 <rule name="rewrite" enabled="true" stopProcessing="true">
               <match url="(.*)" />
               <conditions>
                        <add input="{HTTP_HOST}" pattern="^(?!www\.)(.*)\.example\.com$" />
               </conditions>
               <action type="Rewrite" url="/{C:1}/{REQUEST_URI}" appendQueryString="true" logRewrittenUrl="true" />
             </rule>

Please modify ^(?!www\.)(.*)\example\.com$ to ^(?!www\.)(.*)\.example\.com$.

Finally, you should be point subdomain to subfolder

Besides, if the application in folder domain1/domain2 and domain3 are three independent projects then you need to use sub-application instead of a folder.

Upvotes: 0

Related Questions