Help merging rewrite rules

ISAPI_Rewrite is Apache mod_rewrite compatible URL rewriter for Microsoft IIS
User avatar
Posts: 1
Joined: 02 Apr 2012, 09:51

Help merging rewrite rules

02 Apr 2012, 10:04

We have a website (running on IIS), that allows users to have a subdomain (i.e. xxxxx.ourdomain.com), or they can point their own domains to it (e.g. www.domain1.com, www.domain2.com, etc).

We use an .htaccess file which contains the following rules for ALL subdomains:

RewriteRule ^/?(([a-z]{2})/)?(Javascript)(.*) /$3$4 [NC,L]
RewriteRule ^/?FormShield(.*) /FormShield$1 [NC,L]
RewriteCond %{HTTPS} (on)?
RewriteCond %{HTTP:Host} ^www\.([^.]+)(\.ourdomain\.com)$ [NC]
RewriteCond %{REQUEST_URI} (.+)
RewriteRule .? http(?%1s)://%2%3%4 [R=301,L]
RewriteRule ^/?(Javascript)(.*) /$1$2 [NC,L]
RewriteRule ^/?(Uploads)(.*) /$1$2 [NC,L]
RewriteRule ^/?(UnderConstruction)(.*) /$1$2 [NC,L]
RewriteRule ^/?(Error)(.*) /$1$2 [NC,L]
RewriteRule ^/?(ScriptResource\.axd)(.*) /$1$2 [NC,L]
RewriteRule ^/?(WebResource\.axd)(.*) /$1$2 [NC,L]
RewriteRule ^/?(viewsite/images)(.*) /$1$2 [NC,L]
RewriteRule ^/?(viewsite/styles)(.*) /$1$2 [NC,L]
RewriteRule ^/?(viewsite/themes)(.*) /$1$2 [NC,L]
RewriteRule ^/?(images)(.*) /$1$2 [NC,L]
RewriteRule ^/?(uploads)(.*) /$1$2 [NC,L]
RewriteRule ^/?(styles)(.*) /$1$2 [NC,L]
RewriteRule ^/?(ProcessHandler)(.*) /$1$2 [NC,L]
RewriteCond %{HTTP:Host} ^(?!www\.)([^.]+)\.ourdomain\.com [NC]
RewriteRule /?viewsite/(home|default|accommodation|localarea|location|photos|rates|availability|guestbook|enquiries|links).aspx(.*)? /$1$2 [R=301,NC]
RewriteCond %{HTTP:Host} ^(?!www\.)([^.]+)\.ourdomain\.com [NC]
RewriteRule (/)?(([a-z]{2})/)?(.*[^/])?(/)?(home|default)(.aspx)?(.*) /$3$8 [R=301,L]
RewriteCond %{HTTP:Host} ^(?!www\.)([^.]+)\.ourdomain\.com [NC]
RewriteRule (/)?([a-z]{2})?(/(.+[^/]))?/$ /viewsite/home.aspx?id=%1&sid=$4&lang=$2 [NC,L]
RewriteCond %{HTTP:Host} ^(?!www\.)([^.]+)\.ourdomain\.com [NC]
RewriteRule ([^/]*)?(/)?(sitemap.xml)$ /viewsite/sitemap.ashx?id=%1 [NC,L]
RewriteCond %{HTTP:Host} ^(?!www\.)([^.]+)\.ourdomain\.com [NC]
RewriteRule ([^/]*)?(/)?(robots.txt)$ /viewsite/robots.ashx?id=%1 [NC,L]
RewriteCond %{HTTP:Host} ^(?!www\.)([^.]+)\.ourdomain\.com [NC]
RewriteRule ^(/)?(([a-z]{2})/)?(&.*)?$ /viewsite/default.aspx?id=%1&lang=$3$4 [NC,L]
RewriteCond %{HTTP:Host} ^(?!www\.)([^.]+)\.ourdomain\.com [NC]
RewriteRule (/)?(([a-z]{2})/)?(([^/]*))(/([^/]*))? /viewsite/custom.aspx?id=%1&page=$4&lang=$3&sid=$7 [NC,L]

And we auto generate the following rules for each personal domain that is added:

RewriteCond %{HTTPS} (on)?
RewriteCond %{HTTP:Host} ^(?!www\.)(domain1\.com)$ [NC]
RewriteCond %{REQUEST_URI} (.+)
RewriteRule .? http(?%1s)://www.%2%3 [R=301,L]
RewriteCond %{HTTP:Host} ^(www\.)?(domain1\.com) [NC]
RewriteRule /?viewsite/(home|default|accommodation|localarea|location|photos|rates|availability|guestbook|enquiries|links).aspx(.*)? /$1$2 [R=301,NC]
RewriteCond %{HTTP:Host} ^(www\.)?(domain1\.com) [NC]
RewriteRule (/)?(([a-z]{2})/)?(.*[^/])?(/)?(home|default)(.aspx)?(.*) /$3$8 [R=301,L]
RewriteCond %{HTTP:Host} ^(www\.)?(domain1\.com) [NC]
RewriteRule (/)?([a-z]{2})?(/(.+[^/]))?/$ /viewsite/home.aspx?id=%2&sid=$4&lang=$2 [NC,L]
RewriteCond %{HTTP:Host} ^(www\.)?(domain1\.com) [NC]
RewriteRule ([^/]*)?(/)?(sitemap.xml)$ /viewsite/sitemap.ashx?id=%2 [NC,L]
RewriteCond %{HTTP:Host} ^(www\.)?(domain1\.com) [NC]
RewriteRule ([^/]*)?(/)?(robots.txt)$ /viewsite/robots.ashx?id=%2 [NC,L]
RewriteCond %{HTTP:Host} ^(www\.)?(domain1\.com) [NC]
RewriteRule ^(/)?(([a-z]{2})/)?(&.*)?$ /viewsite/default.aspx?id=%2&lang=$3$4 [NC,L]
RewriteCond %{HTTP:Host} ^(www\.)?(domain1\.com) [NC]
RewriteRule (/)?(([a-z]{2})/)?(([^/]*))(/([^/]*))? /viewsite/custom.aspx?id=%2&page=$4&lang=$3&sid=$7 [NC,L]

Can the above rules (personal domains) be rewritten in such a way so that we don't have to repeat the rules for EACH domain? (but not affect the sub domain rules)

Thanks in advance for any assistance,
Neil

User avatar
Posts: 1264
Joined: 07 Mar 2012, 10:16

Re: Help merging rewrite rules

03 Apr 2012, 05:30

Hello,

Please, consider using he following directive in your httpd.conf : VirtualHost

Regards
Andrew

Return to ISAPI_Rewrite 3.0

Who is online

Users browsing this forum: No registered users and 14 guests