# Rewriting Perspective URLs

**URL:** <https://forum.inductiveautomation.com/t/rewriting-perspective-urls/37830>\
**Category:** Ignition\
**Created:** [August 17, 2020, 10:34pm UTC](https://forum.inductiveautomation.com/t/rewriting-perspective-urls/37830 "2020-08-17T22:34:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![YF129701](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/yf129701/32/60498_2.png) [@YF129701](https://forum.inductiveautomation.com/u/YF129701)\
**Post date:** [August 17, 2020, 10:34pm UTC](https://forum.inductiveautomation.com/t/rewriting-perspective-urls/37830/1 "2020-08-17T22:34:46Z")

</div>

Now that Perspective is out, I’d like to shorten URLs so that end users can actually memorize them (even I can’t memorize the full URLs and I’m a developer). Specifically, I’d like to remove `/data/perspective/client` from the URL.

Current URL: `https://ignition.company.com/data/perspective/client/project/page`  
What I’m looking for: `https://ignition.company.com/project/page`

I’ve done this before with sites hosted on IIS using the URL Rewrite Module, but I don’t know how to approach it in this context. Any suggestions?

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [August 17, 2020, 11:02pm UTC](https://forum.inductiveautomation.com/t/rewriting-perspective-urls/37830/2 "2020-08-17T23:02:34Z")

</div>

I have bookmarked a site where they suggest using NGenix as a front end to isolate Ignition from the real world and to beef up security. I haven’t done this but I was the same mind as you - turn perspective URLs into something more human friendly.

[https://jarautomation.io/blog/posts/2019-06-09-public-facing-ignition/](https://jarautomation.io/blog/posts/2019-06-09-public-facing-ignition/)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 17, 2020, 11:38pm UTC](https://forum.inductiveautomation.com/t/rewriting-perspective-urls/37830/3 "2020-08-17T23:38:31Z")

</div>

I would recommend **not** trying to simply eliminate the unwanted path components. Consider instead minifying the path. Your example would become:

Current URL: `https://ignition.company.com/data/perspective/client/project/page`  
Suggested Rewite: `https://ignition.company.com/dpc/project/page`

where “dpc” is short for “data/perspective/client”. This sort of rewrite leaves access to the original URL structure.

---

<div class="post-metadata">

**Author:** ![YF129701](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/yf129701/32/60498_2.png) [@YF129701](https://forum.inductiveautomation.com/u/YF129701)\
**Post date:** [August 18, 2020, 2:15pm UTC](https://forum.inductiveautomation.com/t/rewriting-perspective-urls/37830/4 "2020-08-18T14:15:35Z")

</div>

@peter That is an interesting technical write-up that I will save for future reference… However, our installation of Ignition is not public-facing (at least for the time being).

@pturmel In our case, I don’t believe keeping the `dpc` keyword would be all that valuable (I might be missing something…). If users want to type out the entire path or if developers need to retrieve web resources that are mounted elsewhere, in that case, they can still type out the full URL and get what they need. My opinion is if end users need to remember the `dpc` tag, they may as well put in `data/perspective/client`. I notice that users typically find the order of `data`, `client`, and `perspective` confusing.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 18, 2020, 2:46pm UTC](https://forum.inductiveautomation.com/t/rewriting-perspective-urls/37830/5 "2020-08-18T14:46:41Z")

</div>

> [@YF129701](#):
>
> they can still type out the full URL and get what they need.

Not if you rewrite `https://ignition.company.com/` to `https://ignition.company.com/data/perspective/client/`, which seems to be what generally is attempted. If you create separate rewrite rules for each project, then yes, other URLs would still work.

> [@YF129701](#):
>
> My opinion is if end users need to remember the `dpc` tag, they may as well put in ...

I did not intend that to be literal. It could be `/projects/` instead. Some short, top level name that everyone knows is the shortcut to `project/page`.

---

<div class="post-metadata">

**Author:** ![YF129701](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/yf129701/32/60498_2.png) [@YF129701](https://forum.inductiveautomation.com/u/YF129701)\
**Post date:** [August 18, 2020, 3:32pm UTC](https://forum.inductiveautomation.com/t/rewriting-perspective-urls/37830/6 "2020-08-18T15:32:06Z")

</div>

@pturmel I see what you mean. Thank you for that information.

What technology can I use to implement a rewrite? Would I need to spin up a web server to handle this type of behavior or is there a native way in Ignition?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 18, 2020, 4:29pm UTC](https://forum.inductiveautomation.com/t/rewriting-perspective-urls/37830/7 "2020-08-18T16:29:08Z")

</div>

The native solution (3rd party module) hooks in via module name below `/data`. I recommend you use a proxy/load balancer external to Ignition. (Handy for redundant Perspective deployments, too.)
