# Choose URL structure in admin/site\_settings

**URL:** https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847
**Category:** Feature
**Created:** [January 10, 2015, 2:41pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847 "2015-01-10T14:41:30Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![winterbox](https://avatars.discourse-cdn.com/v4/letter/w/6de8d8/32.png) [@winterbox](https://meta.discourse.org/u/winterbox)
#### Post date: [January 10, 2015, 2:41pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/1 "2015-01-10T14:41:30Z")

</div>

Continuing the discussion from [Disabling English slugfier for topic’s URL in Korean language setting](https://meta.discourse.org/t/disabling-english-slugfier-for-topics-url-in-korean-language-setting/23780/10):

> [@Disabling English slugfier for topic's URL in Korean language setting](https://meta.discourse.org/t/disabling-english-slugfier-for-topics-url-in-korean-language-setting/23780/10):
>
> Actually, some guys appeal to add control over this in Chinese communities. However, I don’t care this. Most Chinese users won’t notice the slug. I may wrong.
> 
> Slug may be helpful for SEO, or not. At least, the default `topic` is sufficient. Now I am open to your proposal about options here. But the options should be a site setting. @winterbox Can you open a feature for this option to help me track this proposal.
> 
> * * *
> 
> > [@Disabling English slugfier for topic's URL in Korean language setting](https://meta.discourse.org/t/disabling-english-slugfier-for-topics-url-in-korean-language-setting/23780/7):
> >
> > Old browsers don’t support this but I guess you could opt in .
> 
> [zh.wikipedia.org](http://zh.wikipedia.org) use Unicode as url since its start at 2002.
> 
> > [@Disabling English slugfier for topic's URL in Korean language setting](https://meta.discourse.org/t/disabling-english-slugfier-for-topics-url-in-korean-language-setting/23780/6):
> >
> > [http://example.com/안녕하세요-여러분](http://example.com/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-%EC%97%AC%EB%9F%AC%EB%B6%84) is a valid URL
> 
> Some programs can’t handle it very well, they may show a long encoded string when pasted some url into them which looks bad. Leave a site setting to change is ok.

Everyone has their own preference on URL structures:

- `/topic/###`
- `/discourse-is-awesome`
- `/반갑습니다-여러분`
- `/您好`
- or possibly `transliteration`

Some might prefer just English letters & numbers combination even they use their own languages.

If Discourse allows admins can choose the URL structure, it would be very useful.  
Like Wordpress’ ‘Permalink Settings’: [Customize permalinks – Documentation – WordPress.org](http://codex.wordpress.org/Using_Permalinks)  
[http://codex.wordpress.org/images/a/ad/permalink-settings.png](http://codex.wordpress.org/images/a/ad/permalink-settings.png)

To me, `/t/topic/###` is just OK, but maybe there are people who want to use other structure types in my country. Also, giving options seems better, so I create this topic.

@fantasticfears would you add details or feedback?

---

<div class="post-metadata">

### Author: ![fantasticfears](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fantasticfears/32/119608_2.png) [@fantasticfears](https://meta.discourse.org/u/fantasticfears)
#### Post date: [January 10, 2015, 3:12pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/2 "2015-01-10T15:12:33Z")

</div>

> [@Disabling English slugfier for topic's URL in Korean language setting](https://meta.discourse.org/t/disabling-english-slugfier-for-topics-url-in-korean-language-setting/23780/6):
>
> * * *
> 
> [zh.wikipedia.org](http://zh.wikipedia.org) use Unicode as url since its start at 2002.
> 
> > [@Disabling English slugfier for topic's URL in Korean language setting](https://meta.discourse.org/t/disabling-english-slugfier-for-topics-url-in-korean-language-setting/23780/6):
> >
> > [http://example.com/안녕하세요-여러분](http://example.com/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-%EC%97%AC%EB%9F%AC%EB%B6%84) is a valid URL

(PS: This quote is broken…)

> [@winterbox](#):
>
> To me, /t/topic/### is just OK, but maybe there are people who want to use other structure types in my country. Also, giving options seems better, so I create this topic.

Thanks to some heavy route logic, it’s not that easy and necessary to implement custom url structure.

I would insist on `/t/:topic_slug/:topic_id` URL structure. There are some custom options applies to `:topic_slug`, which convert as:

- default: anything to `topic`
- english: `Discourse 测试` to `discourse`(current behaviour)
- same as title: `반갑습니다-여러분` to `반갑습니다-여러분`

Does that make sense to you?

---

<div class="post-metadata">

### Author: ![fantasticfears](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fantasticfears/32/119608_2.png) [@fantasticfears](https://meta.discourse.org/u/fantasticfears)
#### Post date: [January 10, 2015, 3:18pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/3 "2015-01-10T15:18:13Z")

</div>

I think I misunderstood your idea…Did you want to customize all topic’s slug? I don’t like this idea since it confuses people when they saw it.

---

<div class="post-metadata">

### Author: ![winterbox](https://avatars.discourse-cdn.com/v4/letter/w/6de8d8/32.png) [@winterbox](https://meta.discourse.org/u/winterbox)
#### Post date: [January 10, 2015, 3:18pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/4 "2015-01-10T15:18:48Z")

</div>

> [@fantasticfears](#):
>
> - same as title: 반갑습니다-여러분 to 반갑습니다-여러분

Does ‘same as title’ mean: `안녕하세요-discourse` to `안녕하세요-discourse`? (`English + Non-English` to `English + Non-English`)

> [@fantasticfears](#):
>
> Did you want to customize all topic’s slug?

What do you mean? Choose slug type whenever they create topics???

---

<div class="post-metadata">

### Author: ![fantasticfears](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fantasticfears/32/119608_2.png) [@fantasticfears](https://meta.discourse.org/u/fantasticfears)
#### Post date: [January 10, 2015, 3:19pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/5 "2015-01-10T15:19:43Z")

</div>

> [@winterbox](#):
>
> Does ‘same as title’ mean: 안녕하세요-discourse to 안녕하세요-discourse? (English + Non-English to English + Non-English)

Yes. Only sanitized some symbol cannot be used as URL.

---

<div class="post-metadata">

### Author: ![winterbox](https://avatars.discourse-cdn.com/v4/letter/w/6de8d8/32.png) [@winterbox](https://meta.discourse.org/u/winterbox)
#### Post date: [January 10, 2015, 3:23pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/6 "2015-01-10T15:23:27Z")

</div>

> [@fantasticfears](#):
>
> Yes. Only sanitized some symbol cannot be used as URL.

And ‘English’ means : cutting out non-English letters. Right? Then I love your options.

But I don’t understand what you mean here:

> [@fantasticfears](#):
>
> I think I misunderstood your idea…Did you want to customize all topic’s slug?

---

<div class="post-metadata">

### Author: ![fantasticfears](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fantasticfears/32/119608_2.png) [@fantasticfears](https://meta.discourse.org/u/fantasticfears)
#### Post date: [January 10, 2015, 3:46pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/7 "2015-01-10T15:46:06Z")

</div>

> [@winterbox](#):
>
> And ‘English’ means : cutting out non-English letters. Right? Then I love your options.

It’s the **current behaviour**. When you mix CJK characters, english letters and numbers, the Discourse strips CJK characters.

> [@winterbox](#):
>
> I think I misunderstood your idea…Did you want to customize all topic’s slug?

I mean did you want some mechanism to set the topic’s url like category slug you proposaled days ago?

---

<div class="post-metadata">

### Author: ![winterbox](https://avatars.discourse-cdn.com/v4/letter/w/6de8d8/32.png) [@winterbox](https://meta.discourse.org/u/winterbox)
#### Post date: [January 10, 2015, 3:51pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/8 "2015-01-10T15:51:18Z")

</div>

> [@fantasticfears](#):
>
> It’s the current behaviour.

Yes. Including the current behavior, I love your options(Default, English, Same as title) for :topic\_slug.

> [@fantasticfears](#):
>
> I mean did you want some mechanism to set the topic’s url like category slug you proposaled days ago?

No. I don’t want to customize all the URLs topic by topic. (I don’t like it either.)

What I want is:

1. Admin choose URL structure for topic in site setting.
2. Then all the new topics start to be generated with the URL logic Admin chose.

Is it clear now? 😉

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [January 10, 2015, 11:14pm UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/9 "2015-01-10T23:14:03Z")

</div>

I don’t think this request makes sense.. what is really being asked for is control over whether the slug is ASCII or not, or even a custom slug.

---

<div class="post-metadata">

### Author: ![chapoi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chapoi/32/537252_2.png) [@chapoi](https://meta.discourse.org/u/chapoi)
#### Post date: [December 4, 2025, 11:33am UTC](https://meta.discourse.org/t/choose-url-structure-in-admin-site-settings/23847/10 "2025-12-04T11:33:27Z")

</div>


