diff --git a/config/condition_router_config.go b/config/condition_router_config.go
index 8634375efcd8deab66618942d1e77ab1a1e65066..d6e3e8199ec6cb74da5bc94a37354dbe7302d451 100644
--- a/config/condition_router_config.go
+++ b/config/condition_router_config.go
@@ -20,7 +20,6 @@ package config
 import (
 	"encoding/base64"
 	"net/url"
-	"os"
 	"strconv"
 	"strings"
 	"sync"
@@ -59,20 +58,11 @@ func RouterInit(confRouterFile string) error {
 	}
 
 	logger.Debugf("router config{%#v}\n", routerConfig)
-	directory.AddRouterURLSet(initRouterUrl())
+	directory.AddRouterURLSet(initRouterUrl(routerConfig))
 	return nil
 }
 
-func initRouterUrl() *common.URL {
-	mutex.Lock()
-	if routerConfig == nil {
-		confRouterFile := os.Getenv(constant.CONF_ROUTER_FILE_PATH)
-		err := RouterInit(confRouterFile)
-		if err != nil {
-			return nil
-		}
-	}
-	mutex.Unlock()
+func initRouterUrl(routerConfig *ConditionRouterConfig) *common.URL {
 	rule := parseCondition(routerConfig.Conditions)
 
 	return common.NewURLWithOptions(
diff --git a/config/condition_router_config_test.go b/config/condition_router_config_test.go
index ec1d7b5f47e766199305b3f9f8d789ba1ac77fb0..16a0cbf2faae86651ad690699f48b2411b9cb2fe 100644
--- a/config/condition_router_config_test.go
+++ b/config/condition_router_config_test.go
@@ -73,7 +73,7 @@ func TestParseCondition(t *testing.T) {
 func TestInitRouterUrl(t *testing.T) {
 	routerConfig = &ConditionRouterConfig{}
 	loadYmlConfig(testyml, routerConfig)
-	url := initRouterUrl()
+	url := initRouterUrl(routerConfig)
 	assert.Equal(t, url.Protocol, "route")
 	assert.Equal(t, url.Ip, "0.0.0.0")
 }