A URL rewriting middleware that emulates a VHM url.
Mr Monster is a WSGI middleware designed to make it easy to locally test pipelines that will eventually be served behind apache with a rewrite rule in place.
The configuration is very simple, a common case being:
[filter:monster] use = egg:mr.monster#rewrite host = www.example.com port = 80
which simply adds the correct VirtualHostBase/Root declarations.
If no configuration options are supplied the inbound request will be introspected. To avoid this, set an explicit host and port. For users wanting to use autodetection the egg:mr.monster#rewrite line can be added directly to a pipeline.
|autodetect:||Pick a host and port from the inbound request.|
|host:||Set the canonical hostname to pass to Zope. If used you must provide a port.|
|port:||Set the canonical port. If used you must provide a host.|
|internalpath:||A path in the form /foo/site that is the base of your application in Zope.|
|externalpath:||A path in the form /bar/baz to filter from a request using _vh_bar syntax.|
|scheme:||The URI scheme to use in the virtual host, by default this is detected automatically.|
- Add support for overriding URI scheme (Alan Hoey)
- Make the empty string the canonical representation of SCRIPT_NAME for the reroot middleware (Matthew Wilkes)
- Add a secondary middleware for setting the SCRIPT_NAME (Matthew Wilkes)
- Refactor the assertion endpoint in the tests to be more like a normal WSGI app (Matthew Wilkes)
- Strip the external path from the passed-in path info, prevents urls like /_vh_foo/foo which manifested as fully skinned Plone sites with error messages. That made me sad. Oh yes it did. (Matthew Wilkes)
- Fix HTTP/1.1 autodetect in the case that the client sends a host:port for the Host header. (Matthew Wilkes)
- Make the case where no local config is supplied autodetect, not pass-through (Matthew Wilkes)
- Prefer HTTP_HOST to SERVER_NAME so HTTP/1.1 clients work more reliably. (Alan Hoey)
- Initial release (Matthew Wilkes)