diff --git a/protocol/rest/config/reader/rest_config_reader.go b/protocol/rest/config/reader/rest_config_reader.go
index 873af9924b5644158024b22c24aa9eebbf1bf187..2338790ea9926b1ddbf44fc476f092156d8fe2fa 100644
--- a/protocol/rest/config/reader/rest_config_reader.go
+++ b/protocol/rest/config/reader/rest_config_reader.go
@@ -62,7 +62,7 @@ func (cr *RestConfigReader) ReadConsumerConfig(reader *bytes.Buffer) error {
 	for key, rc := range restConsumerConfig.RestServiceConfigsMap {
 		rc.Client = getNotEmptyStr(rc.Client, restConsumerConfig.Client, constant.DEFAULT_REST_CLIENT)
 		rc.RestMethodConfigsMap = initMethodConfigMap(rc, restConsumerConfig.Consumes, restConsumerConfig.Produces)
-		restConsumerServiceConfigMap[strings.TrimPrefix(key, "/")] = rc
+		restConsumerServiceConfigMap[key] = rc
 	}
 	config.SetRestConsumerServiceConfigMap(restConsumerServiceConfigMap)
 	return nil
@@ -79,7 +79,7 @@ func (cr *RestConfigReader) ReadProviderConfig(reader *bytes.Buffer) error {
 	for key, rc := range restProviderConfig.RestServiceConfigsMap {
 		rc.Server = getNotEmptyStr(rc.Server, restProviderConfig.Server, constant.DEFAULT_REST_SERVER)
 		rc.RestMethodConfigsMap = initMethodConfigMap(rc, restProviderConfig.Consumes, restProviderConfig.Produces)
-		restProviderServiceConfigMap[strings.TrimPrefix(key, "/")] = rc
+		restProviderServiceConfigMap[key] = rc
 	}
 	config.SetRestProviderServiceConfigMap(restProviderServiceConfigMap)
 	return nil
diff --git a/protocol/rest/config/rest_config.go b/protocol/rest/config/rest_config.go
index 4732dd8e4eae3ba874fdd8ed95380e6ace3ab66d..27c67db12d1477470550a2f75779b25113781a04 100644
--- a/protocol/rest/config/rest_config.go
+++ b/protocol/rest/config/rest_config.go
@@ -123,13 +123,13 @@ func (c *RestMethodConfig) UnmarshalYAML(unmarshal func(interface{}) error) erro
 }
 
 // nolint
-func GetRestConsumerServiceConfig(path string) *RestServiceConfig {
-	return restConsumerServiceConfigMap[path]
+func GetRestConsumerServiceConfig(id string) *RestServiceConfig {
+	return restConsumerServiceConfigMap[id]
 }
 
 // nolint
-func GetRestProviderServiceConfig(path string) *RestServiceConfig {
-	return restProviderServiceConfigMap[path]
+func GetRestProviderServiceConfig(id string) *RestServiceConfig {
+	return restProviderServiceConfigMap[id]
 }
 
 // nolint
diff --git a/protocol/rest/rest_invoker_test.go b/protocol/rest/rest_invoker_test.go
index 18843d2ae4e8dc54683226f2fb0c325e58c7e4ed..b6bc9806534979976d8c52cd66142a71f408fb06 100644
--- a/protocol/rest/rest_invoker_test.go
+++ b/protocol/rest/rest_invoker_test.go
@@ -44,7 +44,7 @@ const (
 		"application=BDTService&category=providers&default.timeout=10000&dubbo=dubbo-provider-golang-1.0.0&" +
 		"environment=dev&interface=com.ikurento.user.UserProvider&ip=192.168.56.1&methods=GetUser%2C&" +
 		"module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" +
-		"side=provider&timeout=3000&timestamp=1556509797245"
+		"side=provider&timeout=3000&timestamp=1556509797245&bean.name=com.ikurento.user.UserProvider"
 )
 
 func TestRestInvokerInvoke(t *testing.T) {
diff --git a/protocol/rest/rest_protocol.go b/protocol/rest/rest_protocol.go
index 05e119b0540b5f887d53d006e41d3083d1c46de4..d19bd002fc4974c57f50a8595ee25debceb27921 100644
--- a/protocol/rest/rest_protocol.go
+++ b/protocol/rest/rest_protocol.go
@@ -18,7 +18,6 @@
 package rest
 
 import (
-	"strings"
 	"sync"
 	"time"
 )
@@ -72,7 +71,8 @@ func (rp *RestProtocol) Export(invoker protocol.Invoker) protocol.Exporter {
 	url := invoker.GetUrl()
 	serviceKey := url.ServiceKey()
 	exporter := NewRestExporter(serviceKey, invoker, rp.ExporterMap())
-	restServiceConfig := rest_config.GetRestProviderServiceConfig(strings.TrimPrefix(url.Path, "/"))
+	id := url.GetParam(constant.BEAN_NAME_KEY, "")
+	restServiceConfig := rest_config.GetRestProviderServiceConfig(id)
 	if restServiceConfig == nil {
 		logger.Errorf("%s service doesn't has provider config", url.Path)
 		return nil
@@ -94,7 +94,8 @@ func (rp *RestProtocol) Refer(url *common.URL) protocol.Invoker {
 	if t, err := time.ParseDuration(requestTimeoutStr); err == nil {
 		requestTimeout = t
 	}
-	restServiceConfig := rest_config.GetRestConsumerServiceConfig(strings.TrimPrefix(url.Path, "/"))
+	id := url.GetParam(constant.BEAN_NAME_KEY, "")
+	restServiceConfig := rest_config.GetRestConsumerServiceConfig(id)
 	if restServiceConfig == nil {
 		logger.Errorf("%s service doesn't has consumer config", url.Path)
 		return nil