diff --git a/core/modules/rest/src/Plugin/Derivative/EntityDerivative.php b/core/modules/rest/src/Plugin/Derivative/EntityDerivative.php
index 888a724..6f42200 100644
--- a/core/modules/rest/src/Plugin/Derivative/EntityDerivative.php
+++ b/core/modules/rest/src/Plugin/Derivative/EntityDerivative.php
@@ -103,8 +103,8 @@ public function getDerivativeDefinitions($base_plugin_definition) {
         );
 
         $default_uris = array(
-          'canonical' => "/entity/$entity_type_id/" . '{' . $entity_type_id . '}',
-          'http://drupal.org/link-relations/create' => "/entity/$entity_type_id",
+          'canonical' => "/$entity_type_id/" . '{' . $entity_type_id . '}',
+          'http://drupal.org/link-relations/create' => "/$entity_type_id",
         );
 
         foreach ($default_uris as $link_relation => $default_uri) {
diff --git a/core/modules/rest/src/Plugin/ResourceBase.php b/core/modules/rest/src/Plugin/ResourceBase.php
index ef16078..d27d01d 100644
--- a/core/modules/rest/src/Plugin/ResourceBase.php
+++ b/core/modules/rest/src/Plugin/ResourceBase.php
@@ -111,7 +111,6 @@ public function routes() {
 
       switch ($method) {
         case 'POST':
-          $route->setPattern($create_path);
           // Restrict the incoming HTTP Content-type header to the known
           // serialization formats.
           $route->addRequirements(array('_content_type_format' => implode('|', $this->serializerFormats)));
diff --git a/core/modules/rest/src/Tests/CreateTest.php b/core/modules/rest/src/Tests/CreateTest.php
index e547c2c..c9cca0c 100644
--- a/core/modules/rest/src/Tests/CreateTest.php
+++ b/core/modules/rest/src/Tests/CreateTest.php
@@ -43,7 +43,7 @@ public function testCreate() {
       $entity = entity_create($entity_type, $entity_values);
       $serialized = $serializer->serialize($entity, $this->defaultFormat, ['account' => $account]);
       // Create the entity over the REST API.
-      $this->httpRequest('entity/' . $entity_type, 'POST', $serialized, $this->defaultMimeType);
+      $this->httpRequest($entity_type, 'POST', $serialized, $this->defaultMimeType);
       $this->assertResponse(201);
 
       // Get the new entity ID from the location header and try to read it from
@@ -71,7 +71,7 @@ public function testCreate() {
         $context = ['account' => $account];
         $normalized = $serializer->normalize($entity, $this->defaultFormat, $context);
         $normalized['field_test_text'][0]['value'] = 'no access value';
-        $this->httpRequest('entity/' . $entity_type, 'POST', $serializer->serialize($normalized, $this->defaultFormat, $context), $this->defaultMimeType);
+        $this->httpRequest($entity_type, 'POST', $serializer->serialize($normalized, $this->defaultFormat, $context), $this->defaultMimeType);
         $this->assertResponse(403);
         $this->assertFalse(entity_load_multiple($entity_type, NULL, TRUE), 'No entity has been created in the database.');
 
@@ -79,7 +79,7 @@ public function testCreate() {
         $entity->field_test_text->value = $entity_values['field_test_text'][0]['value'];
         $entity->field_test_text->format = 'full_html';
         $serialized = $serializer->serialize($entity, $this->defaultFormat, $context);
-        $this->httpRequest('entity/' . $entity_type, 'POST', $serialized, $this->defaultMimeType);
+        $this->httpRequest($entity_type, 'POST', $serialized, $this->defaultMimeType);
         $this->assertResponse(422);
         $this->assertFalse(entity_load_multiple($entity_type, NULL, TRUE), 'No entity has been created in the database.');
 
@@ -89,25 +89,25 @@ public function testCreate() {
       }
 
       // Try to send invalid data that cannot be correctly deserialized.
-      $this->httpRequest('entity/' . $entity_type, 'POST', 'kaboom!', $this->defaultMimeType);
+      $this->httpRequest($entity_type, 'POST', 'kaboom!', $this->defaultMimeType);
       $this->assertResponse(400);
 
       // Try to send no data at all, which does not make sense on POST requests.
-      $this->httpRequest('entity/' . $entity_type, 'POST', NULL, $this->defaultMimeType);
+      $this->httpRequest($entity_type, 'POST', NULL, $this->defaultMimeType);
       $this->assertResponse(400);
 
       // Try to send invalid data to trigger the entity validation constraints.
       // Send a UUID that is too long.
       $entity->set('uuid', $this->randomMachineName(129));
       $invalid_serialized = $serializer->serialize($entity, $this->defaultFormat, $context);
-      $response = $this->httpRequest('entity/' . $entity_type, 'POST', $invalid_serialized, $this->defaultMimeType);
+      $response = $this->httpRequest($entity_type, 'POST', $invalid_serialized, $this->defaultMimeType);
       $this->assertResponse(422);
       $error = Json::decode($response);
       $this->assertEqual($error['error'], "Unprocessable Entity: validation failed.\nuuid.0.value: <em class=\"placeholder\">UUID</em>: may not be longer than 128 characters.\n");
 
       // Try to create an entity without proper permissions.
       $this->drupalLogout();
-      $this->httpRequest('entity/' . $entity_type, 'POST', $serialized, $this->defaultMimeType);
+      $this->httpRequest($entity_type, 'POST', $serialized, $this->defaultMimeType);
       $this->assertResponse(403);
       $this->assertFalse(entity_load_multiple($entity_type, NULL, TRUE), 'No entity has been created in the database.');
     }
@@ -115,7 +115,7 @@ public function testCreate() {
     // Try to create a resource which is not REST API enabled.
     $this->enableService(FALSE);
     $this->drupalLogin($account);
-    $this->httpRequest('entity/entity_test', 'POST', $serialized, $this->defaultMimeType);
+    $this->httpRequest('entity_test', 'POST', $serialized, $this->defaultMimeType);
     $this->assertResponse(404);
     $this->assertFalse(entity_load_multiple($entity_type, NULL, TRUE), 'No entity has been created in the database.');
 
diff --git a/core/modules/rest/src/Tests/CsrfTest.php b/core/modules/rest/src/Tests/CsrfTest.php
index 7ff6389..79fa465 100644
--- a/core/modules/rest/src/Tests/CsrfTest.php
+++ b/core/modules/rest/src/Tests/CsrfTest.php
@@ -107,7 +107,7 @@ protected function getCurlOptions() {
       CURLOPT_HTTPGET => FALSE,
       CURLOPT_POST => TRUE,
       CURLOPT_POSTFIELDS => $this->serialized,
-      CURLOPT_URL => _url('entity/' . $this->testEntityType, array('absolute' => TRUE)),
+      CURLOPT_URL => _url($this->testEntityType, array('absolute' => TRUE)),
       CURLOPT_NOBODY => FALSE,
       CURLOPT_HTTPHEADER => array(
         "Content-Type: {$this->defaultMimeType}",
diff --git a/core/modules/rest/src/Tests/DeleteTest.php b/core/modules/rest/src/Tests/DeleteTest.php
index ada84e2..4acf81c 100644
--- a/core/modules/rest/src/Tests/DeleteTest.php
+++ b/core/modules/rest/src/Tests/DeleteTest.php
@@ -70,7 +70,7 @@ public function testDelete() {
     $this->enableService(FALSE);
     $account = $this->drupalCreateUser();
     $this->drupalLogin($account);
-    $this->httpRequest('entity/user/' . $account->id(), 'DELETE');
+    $this->httpRequest('user/' . $account->id(), 'DELETE');
     $user = entity_load('user', $account->id(), TRUE);
     $this->assertEqual($account->id(), $user->id(), 'User still exists in the database.');
     $this->assertResponse(404);
