Skip to content
Sebastian Schlicht edited this page Mar 29, 2014 · 12 revisions

Topics to decide

  • For MUID-URL is the name part relevant? For example, let 6A528729A275B50B0DB3 be the MUID for Entity Ensiferum. Then /music/Ensiferum-6A528729A275B50B0DB3 is a valid URL. But should /music/Ensfrm-6A528729A275B50B0DB3 also redirect to the ensiferum entity page?
    • + Easy system to keep URLs valid for entities that changed names. (Would also be possible to create redirect list).
    • + Typos still locate correct URL (but how high is the chance that you type a MUID URL by hand, and mistype the name part but not the MUID?).
    • - Makes slander possible, e.g. /music/Fascist-Band-6A528729A275B50B0DB3 would also redirect to ensiferum.
  • Do specific but lengthy URLs redirect to shorter ones if available? For example, does /music/Ensiferum-6A528729A275B50B0DB3 redirect to /music/Ensiferum because both reference the same entity? Or do both URLs just return the same content? Is it a permanent redirect (HTTP 301) or a temporary (HTTP 302)?
    • + At all times there is only one URL for each entity.
    • - May be confusing to users since other URLs are still accesible.
  • Does each tab really have its own URL mapping? Or does one tab always get the default mapping and has no explicit mapping? For example, does /music/Ensiferum show the about tab and there is no separate /music/Ensiferum/about URL. What tab is the default tab?
    • + Default tab mapping may feel more natural than having two separate URLs for the same tab.
    • - If we would decide for entity-specific default tabs, if would be inconsistent.
  • When URL /music/Ensiferum/Victory-Songs is registered, is the same entity also available under /music/_/Victory-Songs? Same question for tracks.

Concepts

  • Capitalization is relevant. Wrongly capitalized URLs redirect to the correct ones. e.g. ensiferum redirects to Ensiferum.

  • Spaces in URLs are replaced by hyphens (-). Multiple spaces are trimmed to one. URLs with spaces redirect to ones with hyphens. e.g. Victory Songs redirects to Victory-Songs.

  • Non letter characters (e.g. ! or #, but not ä) are removed, and replaced by hyphens in case they seperate words. e.g. Weckt die Toten! is Weckt-die-Toten, Track#18 is Track-18, and Fragments - A Mythological Excavation is Fragments-A-Mythological-Excavation.

  • For many mappings that contain a MUID, there also exists a mapping without a MUID. In case of name clahes policy is that the URL that was first created continues to mirror to the entity. The other entity will only be available by MUID-URLs. (Note: for some entity types other name clashing options are available, for example release years for records).

  • Links on the web site will always link to the shortest unique URL available for an entity.

  • All URLs from old Metalcon will redirect (with HTTP 301 moved permanently) to the new URL mapping. For example, http://metalcon.de/mafia-ep-_von_fleshgod-apocalypse will redirect to http://metalcon.de/music/Fleshgod-Apocalypse/Mafia-EP.

Entities

Entity mappings are directly appended after http://metalcon.de. So /music/Ensiferum means http://metalcon.de/music/Ensiferum.
The order of the mappings conforms to their priority. Even though we register all the mappings, that are not in use yet, the first registered one will be the main mapping and the additional mappings will be redirected to this one.

If not mentioned otherwise, there is a mapping for all entities, with the lowest priority:

  • /<entityType>/<Name>-<id> (e.g. /user/Lukas-Schmelzeisen-aaaaaaaa)
  • /user/<UserName> (e.g. /user/Lukas-Schmelzeisen)
  • /music/<BandName> (e.g. /music/Ensiferum)
  • /music/<Band>/<RecordName> (e.g. /music/Ensiferum/Victory-Songs)
  • /music/<Band>/<RecordReleaseYear>-<RecordName> (e.g. /music/Ensiferum/2007-Victory-Songs)
  • /music/<Band>/<Record>/<TrackName> (e.g. /music/Ensiferum/Victory-Songs/Ahti)
  • /music/<Band>/<Record>/<TrackNumber>-<TrackName> (e.g. /music/Ensiferum/Victory-Songs/4-Ahti)
  • /city/<CityName> (e.g. /city/Koblenz)
  • /venue/<VenueName> (e.g. /venue/Druckluftkammer)
  • /venue/<VenueName>-<CityName> (e.g. /venue/Druckluftkammer-Koblenz)
  • /event/<id> (e.g. /event/abcdefgh)

There is no other mapping for an event, though they do have a name.

  • /genre/<GenreName> (e.g. /genre/Black-Metal)
  • /instrument/<InstrumentName> (e.g. /instrument/Guitar)
  • /tour/<id> (e.g. /tour/bcdefgha)

There is no other mapping for a tour, though they do have a name.

Annotations

  • In case of name clashes the <EntityName> will be appended with -<EntityMuid>. for more information. e.g. /event/Wacken-6A528729A275B50B0DB3. This option is not available for the additional options to resolve name clashes. So /event/2014-07-31-Wacken-6A528729A275B50B0DB3 does not exist. See "Concepts"

  • For cases where one band can't be picked as the major contributor/releasor of a record (e.g. split cds) the band mapping becomes an underscore (_). URLs with contributing bands redirect to this one. e.g. /music/Helrunar/Fragments-A-Mythological-Excavation redirects to /music/_/Fragments-A-Mythological-Excavation. Same goes for tracks. So there exists:

    • /music/_/<record>
    • /music/_/<record>/<track>
    • /music/<band>/_/<track>
    • /music/_/_/<track>

Tab URL mappings are appended to Entity URLs. So /news for band Ensiferum would result in URL http://metalcon.de/music/Ensiferum/news.

  • /

  • If no tab is specified for the user, this URL mirrors the default tab. No default tab is yet decided, default tab could be entity specific.

  • /about
  • /news
  • /bands
  • /records
  • /tracks
  • /reviews
  • /venues
  • /events
  • /users
  • /photos
  • /recommendations

Navigation

Todo.

Preferences

Todo.

Clone this wiki locally