I want to solve a problem of setting up SEO friendly URL for a PWA application.
When i go SEO setup, I cannot select my mobile application as root app.
So how do i setup this Right now my pwa looks like something xyz.enterprise.com/appname
But i am looking to set it up like frindlyname.com/appname
Can someone help with the steps which i can follow to achieve this?
You’re trying to solve two different (but related) things:
friendlyname.com
xyz.enterprise.com
Below is what you can and cannot do in O11, and what to ask your infra team to configure.
OutSystems URLs are always:
https://<environment-host>/<application>/<module or screen>
To get friendlyname.com/appname instead of xyz.enterprise.com/appname, you need:
friendlyname.com/appname
xyz.enterprise.com/appname
app.friendlyname.com
/appname/...
This is typically done on:
OutSystems itself doesn’t change the domain name; it just serves under whatever host is used to reach it. For ODC there is a similar recommendation using a reverse proxy / CDN to map a root domain to an app’s path, and the same concept applies for OutSystems 11 environments.Redirect domains
So:
https://friendlyname.com/appname
https://xyz.enterprise.com/appname
Once that is done, your PWA will be reachable at the friendly domain.
In OutSystems 11:
That’s why you cannot select your Mobile app as root in the SEO setup dialog.
To get user‑friendly URLs and a default entry for your PWA, use a small Reactive/Web “router” module:
PWA_Router
Entry
OnInitialize
OnReady
/YourPWAApp/YourStartScreen?…
/
/appname
PWA_Router.Entry
xyz.enterprise.com/PWA_Router/Entry
This pattern is similar to how a tenant router/root app is used to route users to different applications via friendly URLs.Master Class on Multi-Tenancy
A. Infra team
https://xyz.enterprise.com/PWA_Router/Entry
B. In OutSystems
If you describe how your infra is hosted (OutSystems Cloud vs self‑managed, IIS vs Nginx), I can outline an example rule (pseudo-configuration) matching your setup.
Yes, that approach works, and you can avoid showing the PWA_Router in the URL if you configure it correctly.
There are two layers to think about:
Assume:
https://myenterprise.com/PWAapp/Home
RedirectToURL
"/PWAapp/Home"
GetEntryURL(PWAapp.Home)
PWA_Router/Entry
/PWAapp/Home
From the OutSystems environment perspective:
https://myenterprise.com/appname
Notice that:
.../PWA_Router/Entry
.../appname
.../PWAapp/Home
This is the same “traditional broker → reactive app” workaround described for SEO routing. SEO Friendly URLs not supported with Reactive Web Apps?
Now add your custom domain:
https://friendlyname.com
https://myenterprise.com
You ask your infra team to configure:
Because /appname in OutSystems is already mapped (via SEO rule) to PWA_Router.Entry, the flow becomes:
https://friendlyname.com/PWAapp/Home
So, what does the user see?
myenterprise.com
Right now its like myenterprise.com/PWAapp/Home
myenterprise.com/PWAapp/Home
After the setup:
So when i do the setup It will redirect like this friendlyname.com/PWA_router Which will then redirect to friendlyname.com/PWAapp/Home Will this work?
friendlyname.com/PWA_router
friendlyname.com/PWAapp/Home
It will work, but you don’t need or want the /PWA_Router part to appear in the URL.
/PWA_Router
Correct flow should be:
myenterprise.com/appname
If your SEO rule is created correctly as a site rule and not by navigating directly to /PWA_Router/Entry, the user should never see /PWA_Router in the address bar. SEO for OutSystems Reactive Web apps vs Traditional Web apps
/PWA_Router/Entry
If you tell me what you want the final visible URL to be (keep /PWAapp/Home or hide it also), I can suggest the exact SEO rule pattern to use.
In OutSystems, SEO-friendly URLs can only be configured for Reactive Web or Traditional Web applications, not directly for Mobile/PWA applications. That’s why your mobile app does not appear as a selectable Root App in the SEO setup. For a PWA, the usual approach is to place the application behind a custom domain or reverse proxy. You can configure a custom domain such as friendlyname.com in your DNS and map it to your OutSystems environment (xyz.enterprise.com). Then, using a reverse proxy or web server configuration (like NGINX, IIS, or CloudFront), route requests from friendlyname.com/appname to the actual OutSystems PWA URL. After that, update the PWA manifest and base URLs if required, so the app loads correctly under the custom domain.