-
Notifications
You must be signed in to change notification settings - Fork 10
UrlMapping
- For MUID-URL is the name part relevant? For example, let
6A528729A275B50B0DB3
be the MUID for EntityEnsiferum
. 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.
-
Capitalization is relevant. Wrongly capitalized URLs redirect to the correct ones. e.g.
ensiferum
redirects toEnsiferum
. -
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 toVictory-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!
isWeckt-die-Toten
,Track#18
isTrack-18
, andFragments - A Mythological Excavation
isFragments-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 tohttp://metalcon.de/music/Fleshgod-Apocalypse/Mafia-EP
.
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.
-
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
Todo.
Todo.