dispatch.xml allows you to override routing
You can use the
dispatch.xml to send incoming requests to a specific service
(formerly known as modules) based on the path or hostname in the URL.
For more information, see How Requests are Routed.
Deploying the dispatch file
To deploy and apply the configuration settings from your dispatch file to your App Engine environment:
gcloud app deploy dispatch.yaml
SyntaxThe root element in the
<dispatch-entries>and each entry is a
<dispatch>element that contain the following elements.
The rules that you define in your dispatch file must use HTTP URL patterns
that include the "
." notation for separating subdomains. URLs
defined with the HTTPS "
-dot-" notation are not supported.
Dispatch rules are order dependent, and can also apply to the URLs that you define in your cron file.
Specifies the name of the service that will handle the requests that
In the `url` element, you define the URL pattern, which can include the host name and URL path that are no longer than 100 characters. For the `service` element, you specify the name of the service that you want handling any incoming requests that match the URL pattern of the `url` element.
Tip: You can include glob patterns like the `*` wildcard character in the `url` element; however, those patterns can be used only before the host name and at the end of the URL path.
A URL pattern that can include the hostname and URL path. Glob characters can be used to match patterns. The Glob characters can be specified only at the beginning of the pattern and end of the pattern.
URL paths that begin with
The following is a sample dispatch file that routes requests to
http://simple-sample.appspot.com and requests like
http://simple-sample.appspot.com/favicon.ico to the
default <module>. All
static content is served from the
default <module>. Mobile requests like
http://simple-sample.appspot.com/mobile/ are routed to a mobile frontend, and
worker requests like
http://simple-sample.appspot.com/work/ are routed to a
<?xml version="1.0" encoding="UTF-8"?> <dispatch-entries> <dispatch> <!-- Default module serves the typical web resources and all static resources. --> <url>*/favicon.ico</url> <module>default</module> </dispatch> <dispatch> <!-- Default module serves simple hostname request. --> <url>simple-sample.appspot.com/</url> <module>default</module> </dispatch> <dispatch> <!-- Send all mobile traffic to the mobile frontend. --> <url>*/mobile/*</url> <module>mobile-frontend</module> </dispatch> <dispatch> <!-- Send all work to the one static backend. --> <url>*/work/*</url> <module>static-backend</module> </dispatch> </dispatch-entries>
The dispatch file can contain up to 20 routing rules. When specifying the URL string, neither the hostname nor the path can be longer than 100 characters.
Deleting all dispatch rules
To delete all dispatch rules:
Edit the contents of the
<?xml version="1.0" encoding="UTF-8"?> <dispatch-entries/>
dispatch.xmlfile to App Engine.