<!-- Love localstack? Please consider supporting our collective:
👉  https://opencollective.com/localstack/donate -->

# Type of request: This is a ...

[x] bug report
[ ] feature request

# Detailed description

We noticed this while converting a service to use Localstack for tests. The service generates S3 presigned post URLs. We're able to create and use presigned S3 URLs on port 4572 (deprecated S3 port), but not 4566, the new shared one. The same issue happens with PUT requests, which is the simplest to repro.

While just using 4572 works, this does force us to use the deprecated port and I figured it was worth opening an issue because of the discrepancy.

## Expected behavior

POST http://localhost:4566/hello (with appropriate form params) should return a 204, in the same way that POST http://localhost:4572/hello does.

PUT http://localhost:4566/hello should create a bucket and return a 200, in the same way that PUT http://localhost:4572/hello does.

## Actual behavior

Both PUT and POST http://localhost:4566/hello return a 404.

In the localstack logs:
2020-05-20T13:37:41:INFO:localstack.services.edge: Unable to find forwarding rule for host "localhost:4566", path "/hello", target header "", auth header ""

# Steps to reproduce

```bash
$ curl -i -XPUT http://localhost:4572/hello
HTTP/1.1 200 OK
Server: BaseHTTP/0.6 Python/3.8.2
Date: Wed, 20 May 2020 13:43:17 GMT
Content-Type: application/xml; charset=utf-8
content-length: 159
Access-Control-Allow-Origin: *
Last-Modified: Wed, 20 May 2020 13:43:17 GMT
x-amz-request-id: 0ABD347D7A4E0697
x-amz-id-2: MzRISOwyjmnup0ABD347D7A4E06977/JypPGXLh0OVFGcJaaO3KW/hRAqKOpIEEp
Access-Control-Allow-Methods: HEAD,GET,PUT,POST,DELETE,OPTIONS,PATCH
Access-Control-Allow-Headers: authorization,content-type,content-md5,cache-control,x-amz-content-sha256,x-amz-date,x-amz-security-token,x-amz-user-agent,x-amz-target,x-amz-acl,x-amz-version-id,x-localstack-target,x-amz-tagging
Access-Control-Expose-Headers: x-amz-version-id

<CreateBucketResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01"><CreateBucketResponse><Bucket>hello</Bucket></CreateBucketResponse></CreateBucketResponse>%                                                                                                                

$ curl -i -XPUT http://localhost:4566/hello
HTTP/1.1 404 Not Found
Server: BaseHTTP/0.6 Python/3.8.2
Date: Wed, 20 May 2020 13:43:22 GMT
Content-Length: 21
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: HEAD,GET,PUT,POST,DELETE,OPTIONS,PATCH
Access-Control-Allow-Headers: authorization,content-type,content-md5,cache-control,x-amz-content-sha256,x-amz-date,x-amz-security-token,x-amz-user-agent,x-amz-target,x-amz-acl,x-amz-version-id,x-localstack-target,x-amz-tagging
Access-Control-Expose-Headers: x-amz-version-id

{"status": "running"}%
```

## Command used to start LocalStack

`localstack start`
return config.service_port(service)
def do_start_edge(port, use_ssl, asynchronous=False):
    try:
        
        from localstack_ext.services import dns_server
        dns_server.start_servers()
    except Exception:
        pass
    
    print('Starting edge router (http%s port %s)...' % ('s' if use_ssl else '', port))
    
    proxy = GenericProxy(port, ssl=True, update_listener=ProxyListenerEdge())
    proxy.start()
    if not asynchronous:
        proxy.join()
    return proxy
def can_use_sudo():
    try:
        run('echo | sudo -S echo', print_error=False)
        return True
    except Exception:
        return False
def ensure_can_use_sudo():
    if not is_root() and not can_use_sudo():
        print('Please enter your sudo password (required to configure local network):')
        run('sudo echo', stdin=True)
def start_edge(port=None, use_ssl=True, asynchronous=False):