diff --git a/lib/certMgr.js b/lib/certMgr.js
index 686065e..8e048b9 100644
--- a/lib/certMgr.js
+++ b/lib/certMgr.js
@@ -5,9 +5,10 @@ var exec = require('child_process').exec,
     os           = require("os"),
     color        = require('colorful'),
     readline     = require('readline'),
+    util         = require('./util'),
     asyncTask    = require("async-task-mgr");
 
-var certDir      = path.join(getUserHome(),"/.anyproxy_certs/"),
+var certDir      = path.join(util.getUserHome(),"/.anyproxy_certs/"),
     cmdDir       = path.join(__dirname,"..","./cert/"),
     asyncTaskMgr = new asyncTask();
 
@@ -37,10 +38,6 @@ function getCertificate(hostname,cb){
     }
 }
 
-function getUserHome() {
-    return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
-}
-
 function createCert(hostname,callback){
     console.log(hostname);
     checkRootCA();
diff --git a/lib/util.js b/lib/util.js
index 8f58988..ce4a315 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -18,3 +18,8 @@ module.exports.merge = function(baseObj, extendObj){
 	return baseObj;
 }
 
+
+module.exports.getUserHome = function(){
+    return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
+}
+
diff --git a/proxy.js b/proxy.js
index 42b5303..5343cbe 100644
--- a/proxy.js
+++ b/proxy.js
@@ -19,6 +19,7 @@ var http = require('http'),
     util           = require("./lib/util"),
     entities       = require("entities"),
     express        = require("express"),
+    path           = require("path"),
     WebSocketServer= require('ws').Server;
 
 GLOBAL.recorder = new Recorder();
@@ -31,6 +32,11 @@ var T_TYPE_HTTP            = 0,
     DEFAULT_HOST           = "localhost",
     DEFAULT_TYPE           = T_TYPE_HTTP;
 
+var default_rule = require('./lib/rule_default');
+if(fs.existsSync(path.join(util.getUserHome(),"/.anyproxy/rule_default.js"))){
+    default_rule = require(path.join(util.getUserHome(),"/.anyproxy/rule_default"));
+}
+
 //option
 //option.type     : 'http'(default) or 'https'
 //option.port     : 8001(default)
@@ -43,7 +49,7 @@ function proxyServer(option){
         proxyType  = /https/i.test(option.type || DEFAULT_TYPE) ? T_TYPE_HTTPS : T_TYPE_HTTP ,
         proxyPort  = option.port     || DEFAULT_PORT,
         proxyHost  = option.hostname || DEFAULT_HOST,
-        proxyRules = option.rule || require('./lib/rule_default'); 
+        proxyRules = option.rule || default_rule; 
 
     requestHandler.setRules(proxyRules); //TODO : optimize calling for set rule
     self.httpProxyServer = null;