Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I'm using IIRF and having some trouble getting it to redirect all traffic to the secure version of my sites.

So... I have a website with about 20 apps in virtual directories in IIS6. The website takes 80 and 443 traffic. I want to use IIRF to redirect all port 80 traffic EG;

To the secure equivalent (https).

Here's my config so far;

# Iirf.ini
#
# ini file for IIRF
#

RewriteLogLevel 1
RewriteLog D:\Websites\Apptemetry\IirfLogs
RewriteEngine ON
StatusInquiry ON
IterationLimit 5
RewriteLogLevel 3

RewriteCond %{HTTPS} off
RewriteCond %{SERVER_PORT} ^80$
RedirectRule ^http(.*)$ https$1

Can anyone advise the correct configuration to use, to redirect all traffic?

EDIT : I've used TestDriver with a couple of my urls. An error occurs when processing one of the urls.

Trying to read config at 'D:\Websites\Apptemetry\Iirf.ini'
Wed Dec 22 10:45:11 - 70920 - -------------------------------------------------------
Wed Dec 22 10:45:11 - 70920 - Ionic ISAPI Rewriting Filter (IIRF) 2.1.1.23 x86 RELEASE
Wed Dec 22 10:45:11 - 70920 - IIRF was built on: May 30 2010 13:26:57
Wed Dec 22 10:45:11 - 70920 - GetLogFile: app:'None'  new log:'D:\Websites\Apptemetry\IirfLogs.72072.log'
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: actual log file 'D:\Websites\Apptemetry\IirfLogs.72072.log'
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: ini file: 'D:\Websites\Apptemetry\Iirf.ini'
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: ini file timestamp: 2010/12/22 09:27:32 GMT Standard Time
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: cfg(0x009D59D8)
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: LogLevel = 5
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: pass 2
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: D:\Websites\Apptemetry\Iirf.ini(8): RewriteEngine will be enabled.
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: D:\Websites\Apptemetry\Iirf.ini(9): StatusInquiry ON (--) (--)
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: D:\Websites\Apptemetry\Iirf.ini(9): IIRF Status Inquiry is enabled at path '/iirfStatus' for local reque
sts only.
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: D:\Websites\Apptemetry\Iirf.ini(10): IterationLimit 5
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: D:\Websites\Apptemetry\Iirf.ini(12): RewriteCond   %{HTTPS}  off '(null)'
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: D:\Websites\Apptemetry\Iirf.ini(13): RewriteCond   %{SERVER_PORT}  ^80$ '(null)'
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: D:\Websites\Apptemetry\Iirf.ini(14): RedirectRule (rule 1)  '^(.*)$'  'https://att15web99/$1'   (null)
Wed Dec 22 10:45:11 - 70920 - ReadVdirConfig: Done reading INI for vdir(?), found 1 rules (0 errors, 0 warnings) on 16 lines
done reading new config
Processing URLs...(D:\Websites\Apptemetry\SampleUrls.txt)

Wed Dec 22 10:45:11 - 70920 - DoRewrites: Url: 'http://att15web99'
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: depth=0
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: getting 'SCRIPT_NAME'
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: 128 bytes
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: result ''
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: no RewriteBase
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: Rule 1: pattern: ^(.*)$  subject: http://att15web99
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: Rule 1: 2 match
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: Rule 1: evaluating condition
Wed Dec 22 10:45:11 - 70920 - EvalCondition: cond 0x009D7090
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: getting 'HTTPS'
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: 128 bytes
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: result ''
Wed Dec 22 10:45:11 - 70920 - ReplaceServerVariables: alloc 7 bytes
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: getting 'HTTPS'
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: 128 bytes
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: result ''
Wed Dec 22 10:45:11 - 70920 - ReplaceServerVariables: vName(HTTPS) value()
Wed Dec 22 10:45:11 - 70920 - ReplaceServerVariables: in='%{HTTPS}' out=''
Wed Dec 22 10:45:11 - 70920 - EvalCondition: ts1 ''
Wed Dec 22 10:45:11 - 70920 - GenerateReplacementString: alloc 8 bytes
Wed Dec 22 10:45:11 - 70920 - GenerateReplacementString: result ''
Wed Dec 22 10:45:11 - 70920 - EvalCondition: t() op(|) p(off)
Wed Dec 22 10:45:11 - 70920 - EvalCondition: match result: -1 (No match)
Wed Dec 22 10:45:11 - 70920 - EvalCondition: Cond t(%{HTTPS}) op(|) p(off) => FALSE
Wed Dec 22 10:45:11 - 70920 - EvalCondition: Child is non NULL (parent= 0x009D7090) (child= 0x009D72F0)
Wed Dec 22 10:45:11 - 70920 - EvalCondition: Current condition evaluates to FALSE
Wed Dec 22 10:45:11 - 70920 - EvalCondition: Logical AND, ergo no need to evaluate Child condition
Wed Dec 22 10:45:11 - 70920 - EvalConditionList: rule 1, FALSE, Rule does not apply
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: returning 0

NO REWRITE 'http://att15web99' ==> --
Wed Dec 22 10:45:11 - 70920 - DoRewrites: Url: 'http://att15web99/cmdb/'
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: depth=0
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: getting 'SCRIPT_NAME'
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: 128 bytes
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: result ''
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: no RewriteBase
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: Rule 1: pattern: ^(.*)$  subject: http://att15web99/cmdb/
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: Rule 1: 2 match
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: Rule 1: evaluating condition
Wed Dec 22 10:45:11 - 70920 - EvalCondition: cond 0x009D7090
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: getting 'HTTPS'
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: 128 bytes
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: result ''
Wed Dec 22 10:45:11 - 70920 - ReplaceServerVariables: alloc 7 bytes
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: getting 'HTTPS'
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: 128 bytes
Wed Dec 22 10:45:11 - 70920 - GetServerVariable: result ''
Wed Dec 22 10:45:11 - 70920 - ReplaceServerVariables: vName(HTTPS) value()
Wed Dec 22 10:45:11 - 70920 - ReplaceServerVariables: in='%{HTTPS}' out=''
Wed Dec 22 10:45:11 - 70920 - EvalCondition: ts1 ''
Wed Dec 22 10:45:11 - 70920 - GenerateReplacementString: alloc 8 bytes
Wed Dec 22 10:45:11 - 70920 - GenerateReplacementString: result ''
Wed Dec 22 10:45:11 - 70920 - EvalCondition: t() op(|) p(off)
Wed Dec 22 10:45:11 - 70920 - EvalCondition: match result: -1 (No match)
Wed Dec 22 10:45:11 - 70920 - EvalCondition: Cond t(%{HTTPS}) op(|) p(off) => FALSE
Wed Dec 22 10:45:11 - 70920 - EvalCondition: Child is non NULL (parent= 0x009D7090) (child= 0x009D72F0)
Wed Dec 22 10:45:11 - 70920 - EvalCondition: Current condition evaluates to FALSE
Wed Dec 22 10:45:11 - 70920 - EvalCondition: Logical AND, ergo no need to evaluate Child condition
Wed Dec 22 10:45:11 - 70920 - EvalConditionList: rule 1, FALSE, Rule does not apply
Wed Dec 22 10:45:11 - 70920 - EvaluateRules: returning 0

NO REWRITE 'http://att15web99/cmdb/' ==> --
ERROR expected(ãé|@ùê|♫ãé|@ùê|╝¯↕)
        actual(NO REWRITE)

1 Errors in 1 Total Trials
share|improve this question

1 Answer 1

up vote 1 down vote accepted

Just change one line

RedirectRule ^(.*)$ https://myserver/$1
share|improve this answer
    
This seems to only work for myserver requests. If i write myserver/app1 then i just get left on the unsecure site. –  GordonB Dec 22 '10 at 9:10
    
Found out that i needed an ini file in each of the virtual directories in the website. Opted to create a new website with no virtual directories that redirects to the original website. Works like a charm –  GordonB Dec 23 '10 at 17:43
    
That sounds strange, but then maybe it handles VirtualDirs different. Are you sure? –  Erik Johansson Dec 25 '10 at 2:13
    
It needs a INI file for each Virtual Directory. I've got round this issue by creating an empty website (with the iirf isapi filter) on port 80, and putting the other website on port 81 (then rejecting unsecure traffic in iis). –  GordonB Jan 4 '11 at 14:43

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.