Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/06/2020 in all areas

  1. 1 point
  2. Kal

    Friendly URLs (permalinks)

    Friendly URLs are, in my opinion, an essential element of any content management system. No one likes a long, ugly URL. But more importantly, no one likes link rot—least of all the site owner who may lose their precious search engine rank when a URL changes. For this reason, a URL should never be dependant on the underlying platform. Here's an example of such a URL, from Blesta's Knowledge Base plugin: https://blesta.example.com/plugin/support_manager/knowledgebase/view/12/testing-your-website-before-it-goes-live/5/ Aside from being unnecessarily long, the URL also includes the following, platform-specific data: Blesta's Knowledge Base is a 'plugin'. The plug-in is called 'Support Manager'. The article is the 12th one that was added to the database. The article belongs to the 5th category that was added to the database. Each of these is a point at which the URL is likely to break if and when the underlying software platform changes. A platform agnostic URL, or permalink, is a URL that should never change, and it's a critical element of website design/development. Tim Berners-Lee stated this firmly in the 1998 article, Cool URIs don't change, where he espoused the concept of URI design. I request that Blesta introduce a permalink feature, which is accessible via the UI, easy to use, and central to the design of the whole system. The Knowledge Base, perhaps, needs special attention, so that database table row IDs are never part of the article URLs. (routes.php does not fulfil these requirements.) Without this feature, the user must go to considerable effort to manually create many individual redirects using Apache configuration files or .htaccess files.
    1 point
  3. Kal

    Friendly URLs

    Thanks for the info about routes.php. I can see from the code, for example, how `/admin/settings/company/general/localization/` really points to `/admin_company_general/localization/`. By the same logic, `/admin/plugin/support_manager/admin_knowledgebase/` should point to `/support_manager/admin_knowledgebase/`, but trying to load that second URL in a browser doesn't work—so I guess there's something I'm not getting about how it works. Anyway, I suspect I can't achieve what I want with routes, because the table row IDs for knowledge base articles are essential parts of the URLs. Ideally, I'd like the option of having human-readable and platform-agnostic URLs like this: https://account.example.com/help/docs/article-title I don't like that the URLs include table row IDs, which don't reflect anything meaningful, only what order I created the articles. That kind of thing should be hidden from the user IMHO.
    1 point
×
×
  • Create New...