ChiliProject is not maintained anymore. Please be advised that there will be no more updates.

We do not recommend that you setup new ChiliProject instances and we urge all existing users to migrate their data to a maintained system, e.g. Redmine. We will provide a migration script later. In the meantime, you can use the instructions by Christian Daehn.

Pretty urls for forums (Feature #375)


Added by Eric Davis at 2011-05-04 05:33 pm. Updated at 2011-05-20 03:37 pm.


Status:Open Start date:2011-05-04
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:Forums
Target version:-
Remote issue URL: Affected version:

Description

Right now the forums urls aren't pretty at all:

It would be better if they had the forum name in them, like:

I don't know if it's possible but we might be able to even have the topic name in there too if we remove and convert some characters

Thoughts?

(We would still have the id in there for direct id lookup and in case of non-unique titles)


Related issues

related to Bug #259: Forum thread links not idempotent Open 2011-03-05

History

Updated by Holger Just at 2011-05-04 05:41 pm

I'd drop the topic part of the URL and also the id of the forum. We should define unique identifiers (like for projects) instead. As boards are project-specific I'd put then under /projects/foo. The board identifiers then need to be unique for a project only.

So I propose a URL structure like follows:

https://www.chiliproject.org/projects/chiliproject/boards/develop/369-proposal-new-permissions

I like to have the topic in the URL (it's also good for SEO). But it shouldn't change, even if the visible topic is changed. We might need a UI field to change it then. If that's too big a hassle, I'm also fine with the ID of the topic only.

Updated by Felix Schäfer at 2011-05-04 07:01 pm

  1. Having the board name or ID in the URL would work against #259 (idempotent URLs to forum threads),
  2. Regarding topic changes: the URL should be changed but the old ones should get a 301-redirect (which I think the wiki already does?).

Maybe we could just look at how "popular"/well-known forum software handles this (phpbb, tinybb, …) to see what the "best practice" is?

Updated by Eric Davis at 2011-05-04 07:38 pm

Holger Just wrote:

I'd drop the topic part of the URL and also the id of the forum.

Dropping /topic/ could be fine.

So I propose a URL structure like follows:

https://www.chiliproject.org/projects/chiliproject/boards/develop/369-proposal-new-permissions

I'm not sure if they should be under /projects (#259)

I like to have the topic in the URL (it's also good for SEO). But it shouldn't change, even if the visible topic is changed. We might need a UI field to change it then. If that's too big a hassle, I'm also fine with the ID of the topic only.

What I've seen is that the subject part is optional so these all go to the same place:

Only the id values are used and the original url is generated (and maybe saved to an editable field...)

Felix Schäfer wrote:

  1. Regarding topic changes: the URL should be changed but the old ones should get a 301-redirect (which I think the wiki already does?).

I don't even think a redirect is needed as long as the ids are there. Maybe if a topic is moved from one forum to another (e.g. from 2-develop/123-topic to 1-discuss/123-topic)

Maybe we could just look at how "popular"/well-known forum software handles this (phpbb, tinybb, …) to see what the "best practice" is?

Yea. Vanilla is probably a good one. This idea was based off of a lot of Rails apps I've seen, I think lighthose and tender use this format (ID-some-title).

Updated by Felix Schäfer at 2011-05-04 09:19 pm

Eric Davis wrote:

Felix Schäfer wrote:

  1. Regarding topic changes: the URL should be changed but the old ones should get a 301-redirect (which I think the wiki already does?).

I don't even think a redirect is needed as long as the ids are there. Maybe if a topic is moved from one forum to another (e.g. from 2-develop/123-topic to 1-discuss/123-topic)

If one of the motivations is SEO, you don't want to loose "old" links and have only one URL at all time for the same "thing", which would make redirects the weapon of choice :-)

Updated by Eric Davis at 2011-05-06 06:36 pm

Felix Schäfer wrote:

If one of the motivations is SEO, you don't want to loose "old" links and have only one URL at all time for the same "thing", which would make redirects the weapon of choice :-)

I'm thinking about making a redirecting plugin soon. I need to rename a bunch of my projects in my install.

But as far as the Forum url naming, is there a common naming standard we can agree on?

Updated by Felix Schäfer at 2011-05-09 07:47 am

From what I could gather from "forum software":

  • PHPbb: uses a ?f=${id} and ?t=${id} part in the URL,
  • vBulletin: uses a ${id}-${title}[/page${number}] scheme, the ids seem to be shared between forums and threads though,
  • UBB: topics/${id}/${title} for the first page, topics/${id}/${number}.html for pages after that,
  • IPB: forum/${id}-${title} and topic/${id}-${title}.

My preference would be IPB style, so boards/${id}-${title} and topics/${id}-${title}.

Updated by Felix Schäfer at 2011-05-17 06:57 am

Felix Schäfer wrote:

My preference would be IPB style, so boards/${id}-${title} and topics/${id}-${title}.

Any thoughts on this? Ideas on how to get redirects/slugs done?

Updated by Eric Davis at 2011-05-20 03:37 pm

I think the main question is:

Are threads separate things from forums?

Meaning, as an object, can a thread stand alone from it's forum? If so then it is a lot like issues where they should be a resource defined on their own namespace (eg /issues/:id /topics/:id). If threads aren't separate from their forum, then they should be together (/boards/:board_id/topics/:topic_id).

After thinking about this in my opinion: threads are separate things. The forum is just a categorization of them, similar to Issue <-> IssueCategory. In that case having the board in the url shouldn't be needed.

Another question: since there isn't any difference between a thread and a Message, should we allow accessing a thread by it's reply ids too? An example would help:

  • Message 1 (root, start of thread)
  • Message 3 (reply)
  • Message 5 (reply)

The main url to access the thread is /topics/1-message. But should we allow /topics/2-message and /topics/3-message too? IMO we should and they should all be a view of that single message (like Google Groups). That would give us better permalinking to a specific comment and from there we can link back to the "full thread".

Thoughts? (Felix: I know have to do the slug and have a good idea for redirects...)

Also available in: Atom PDF