# Nest static page under another page (custom url)

**URL:** <https://forum.ghost.org/t/nest-static-page-under-another-page-custom-url/1572>\
**Category:** Developer help\
**Created:** [June 10, 2018, 9:03pm UTC](https://forum.ghost.org/t/nest-static-page-under-another-page-custom-url/1572 "2018-06-10T21:03:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ryanjm](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ryanjm/32/795_2.png) [@ryanjm](https://forum.ghost.org/u/ryanjm)\
**Post date:** [June 10, 2018, 9:03pm UTC](https://forum.ghost.org/t/nest-static-page-under-another-page-custom-url/1572/1 "2018-06-10T21:03:08Z")

</div>

I’m trying to figure out how to do a nested page. For example, I want a page that is `/cities/` and links to multiple cities under that (i.e. `/cities/chicago`). I can create the first page, but I can’t figure out how to add a `/` to the Post URL for the chicago page since it automatically gets changed to a hyphen.

Is this possible?

Ghost Version: 1.24.1

---

<div class="post-metadata">

**Author:** ![HauntedThemes](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/hauntedthemes/32/15301_2.png) [@HauntedThemes](https://forum.ghost.org/u/HauntedThemes)\
**Post date:** [June 11, 2018, 7:47am UTC](https://forum.ghost.org/t/nest-static-page-under-another-page-custom-url/1572/2 "2018-06-11T07:47:57Z")

</div>

At this moment, you can’t really do this. At least not with pages. You can change the URL for taxonomies e.g /tag/:slug/ → /cities/:slug/ but it’s not something that you should do now, in my opinion. You will most likely be able to do this in the future with Dynamic Routing. It is a work in progress feature.

> <https://github.com/TryGhost/Ghost/issues/9601>
>
> Refs: https://github.com/TryGhost/Ghost/issues/9528 (YAML Settings), https://git…hub.com/TryGhost/Ghost/issues/9192 (Routing re-write), https://github.com/TryGhost/Ghost/pull/9550 (Url Service).
> 
> \## The what and why of dynamic routing
> 
> Ghost's Routing has always been almost entirely static and hard-coded. The only config we've offered is the option to add dates to permalinks, but that setting is probably my least favourite part of Ghost 😂 
> 
> People close to the project will have heard a lot about a mysterious feature called "channels", which was an attempt to expose more configuration around lists of posts. This has been working behind the scenes, but we haven't been clear on how to expose the functionality: Apps? Config? UI?
> 
> Early this year we sat down and rethought routing from the ground up with a view to answering the following questions: How can we make it possible to solve all the common routing use cases? How do we expose functionality to our users? How does this fit in with Apps? And where the fuck do Channels fit into all of this?
> 
> Top 3 common use cases we want to solve:
> 
> 1. custom home pages
> 2. rendering a taxonomy at a non-standard URL, e.g. /tag/recipes/ -\> /category/recipes/
> 3. customising post collections e.g. removing posts with a certain tag, or using a different URL
> 
> There are 3 main problems we have with trying to reach these use cases:
> 
> \- How to make routes enumerable and configurable
> \- Ability to generate sitemaps and other features that need to know about URLs rather than routes
> \- Resource \<-\> URL 2 way binding - get resource from URL, get URL for resource
> 
> We think we have the answers, however the theory is never quite the same as the practice. This issue represents our current thinking at the time of writing and is very subject to change! 
> 
> \## What's coming?
> 
> In https://github.com/TryGhost/Ghost/issues/9528 we added the ability to customise Ghost through YAML files that live in \`content/settings\`. The first file that will live here will be \`routes.yaml\`, and this will be the gateway to all things dynamic routing. This solve the configuration problem.
> 
> The solution to everything else is the introduction of a URL service and a huge rewrite of all the code that generates content for Ghost blogs 😅 
> 
> \*\*Beta Goals\*\*
> 
> In the first beta version, by editing \`content/settings/routes.yml\` it will be possible to:
> 
> \- Define a custom route that renders a specific template
> \- Define a custom home page 
> \- Change the location of the standard collection of posts, e.g. so they all live at \`/blog/\*\`.
> \- Change the URL for taxonomies e.g \`/tag/:slug/\` -\> \`/category/:slug/\`
> \- Customise the main post collection (v1 has severe known limitations)
> \- Define new collections (v1 has severe known limitations)
>  
> Once the first beta goes out we will be looking for people to test their routing use-cases. At that point, we'll publish some documentation on how the default routes.yml file is structured and how to define custom routes and collections within the limitations. 
> 
> \*\*Tracked tasks\*\*
> 
> \- \[x\] YAML Settings #9528 
> \- \[x\] Url Service rewrite #9550 
> \- \[x\] Dynamic sitemap 100% working (https://github.com/TryGhost/Ghost/pull/9580)
> \- \[x\] Rework url utility https://github.com/TryGhost/Ghost/pull/9593
> \- \[x\] Routing re-write https://github.com/TryGhost/Ghost/pull/9596
> \- \[x\] render 503 if url service is processing (https://github.com/TryGhost/Ghost/pull/9588)
> \- \[x\] Resources have full 2-way binding https://github.com/TryGhost/Ghost/pull/9596
> 
> \*\*Overall Goals\*\*
> 
> This issue will be closed when we achieve the following:
> 
> \- \[x\] Ship first beta version of dynamic routing
> \- \[x\] First version of channels (https://github.com/TryGhost/Ghost/pull/9686)
> - \[x\] Resource path aliases with automatic redirects (Need a separate issue explaining this feature!)
> \- \[x\] Data key, order, limit, redirect
> \- \[x\] Disable rss (https://github.com/TryGhost/Ghost/pull/9693)
> \- \[x\] \*\*Extracted\*\*: disable sitemaps, disable pagination (https://github.com/TryGhost/Ghost/issues/10313)
> \- \[x\] \*\*Extracted\*\*: All hard-coded public routes (e.g. page) are configurable inc homepage (https://github.com/TryGhost/Ghost/issues/10312)
> \- \[x\] Add UI to upload+reload routes.yaml file (https://github.com/TryGhost/Ghost/issues/9744)
> 
> \_Note: There are some extensions to the dynamic routing behaviour that are known but not covered by this issue, which include custom controllers and custom taxonomies\_
> 
> 💡 \*\*Please direct all questions & discussion to the \[forum\](https://forum.ghost.org).\*\* This issue will be used for collecting bugs & use cases once the beta goes out.

---

<div class="post-metadata">

**Author:** ![ryanjm](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ryanjm/32/795_2.png) [@ryanjm](https://forum.ghost.org/u/ryanjm)\
**Post date:** [June 11, 2018, 6:36pm UTC](https://forum.ghost.org/t/nest-static-page-under-another-page-custom-url/1572/3 "2018-06-11T18:36:58Z")

</div>

Thank you that is really helpful. I’ll keep an eye on that Github issue.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/ghost2/original/2X/b/ba9ce5100b8bb264586f4f572545596b2ce3f081.png) [@system](https://forum.ghost.org/u/system)\
**Post date:** [June 25, 2018, 6:37pm UTC](https://forum.ghost.org/t/nest-static-page-under-another-page-custom-url/1572/4 "2018-06-25T18:37:04Z")

</div>

Closed on June 25, 2018, 6:37pm UTC

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
