How to remove ID from URL in Joomla 2.5-3.7

There is a new option in Joomla 3.8.2 allowing to get rid of ID in URLs (thanks to Ian who discovered it). If you have an older Joomla version and unable to update to 3.8.2 or higher follow the steps provided below:

Open components\com_content\router.php in an editor and make a small changes:

in function ContentBuildRoute(&$query) replace line 27

$advanced    = $params->get('sef_advanced_link', 0);


$advanced    = $params->get('sef_advanced_link', 1);

in function ContentParseRoute($segments) replace line 208

$advanced    = $params->get('sef_advanced_link', 0);


$advanced    = $params->get('sef_advanced_link', 1);

Comment out lines 228-232

if (strpos($segments[0], ':') === false) {
    $vars['view'] = 'article';
    $vars['id'] = (int)$segments[0];
    return $vars;

so it would be

if (strpos($segments[0], ':') === false) {
    $vars['view'] = 'article';
    $vars['id'] = (int)$segments[0];
    return $vars;

That is all. I tested this on my Joomla 2.5.4 test site and looks like it works, but I cannot say that it works in all the cases.

Some explanation

If you tried the method described above and it works for you, you could leave it as it is and close this page, but if you interested in some explanation please read below.

As seen from lines 27 and 208 Joomla Content Component uses ‘sef_advanced_link’ parameter, so setting this parameter to ‘1’ eliminates the need for changing this lines. It could be done by adding the following XML to ‘fieldset’ section of administrator\components\com_content\config.xml:

<field name="sef_advanced_link"
    label="Sef Advanced Mode"
    description="Remove ItemID from Content URL?">
        <option    value="0">JNO</option>
        <option    value="1">JYES</option>

and then setting ‘Sef Advanced Mode’ to Yes in ‘Article Manager Options’ window:

Remove ItemID from Content URL

Please note that setting default=”1″ in XML does not take an effect for some reason.

What concerns lines 228-232, if I leave them uncommented, ID disappears from URL and single articles open fine but when I trying to open a category not linked to some menu item I get “404 – Article not found” error message. I cannot say for sure, but I think that Joomla developers added ‘sef_advanced_link’ parameter but didn’t tested it well enough, so, probably, they will fix this code in future releases.

155 Responses to How to remove ID from URL in Joomla 2.5-3.7

  1. Wendy on May 27, 2012 at 3:10 AM:

    Very nice… new blank install 2.5.4 fixes issue. Anyone understand why joomla put this in the router.php file, what’s the purpose?

    • dmitriano in reply to Wendy on May 28, 2012 at 9:39 PM:

      Not clear to me what you mean, but I added ‘some explanation’, probably it would be helpful.

    • F. Saskiano in reply to Wendy on July 8, 2013 at 8:03 PM:

      ALso works fine for me, Joomla! 2.5.8 – Thank you! Installed in functional but not yet live site.

      But: in order to keep my core code pristine, I would prefer to use this fix in a standard override – but when the “fixed” router.php is placed in this folder:


      it does not work. It ought to, as any component file can be overridden, AFAIK.


      TIA for your help!

    • bugil in reply to Wendy on March 31, 2017 at 2:03 AM:

      Thanks the trick

      • Ashiq Ullah in reply to bugil on April 27, 2017 at 9:54 PM:

        This is not working for joomla version 3.7

  2. Alexandru on May 28, 2012 at 7:10 AM:

    Yes works for me too 2.5.4
    Great tip, thank you very much !

  3. Tomatico on June 6, 2012 at 8:45 AM:

    excelent. Perfectly work on joomla 2.5.4. Thank you for the tip

  4. Fabian Vasquez on June 16, 2012 at 2:41 AM:

    Works perfect on joomla 2.5.5 and 1.7.3

  5. Eric on June 16, 2012 at 10:06 AM:

    Since the time that i searched this tip, thanks a lot !

  6. Tyler on June 24, 2012 at 6:50 AM:

    Worked great for me on my landscaping site!

  7. jonson josnon on July 12, 2012 at 10:01 PM:

    Works perfect , quick and easy , thanks for this great article

  8. Andy on July 14, 2012 at 7:02 PM:

    solved my problem – thanks

  9. Olly Goldstein on July 15, 2012 at 8:45 PM:

    worked great thanks – but be careful doing this to a live site as any old links will no longer work i think
    also updating joomla would probably mess this up however works great if you dont want an SEF extension installed (which would do the same if you wanted without code changes)

    • dmitriano in reply to Olly Goldstein on July 16, 2012 at 6:06 AM:

      On a live site you could use redirect 301. Some example that I did with Apache 2 using .htaccess file:

      RewriteRule ^recipes/(\d+)-([\-a-zA-Z0-9_]+)/(\d+)-([\-a-zA-Z0-9_]+)/?$ recipes/$2/$4/ [NC,R=301,L]

      where “recipes” is the alias of some menu item associated with category view.

      • Jim in reply to dmitriano on August 3, 2012 at 11:24 PM:

        I wouldn’t suggest redirecting a dead link, because then Google and other search engines think that the link isn’t broken, so they’ll process that and the working link. And double content = bad rating. At least that’s what I heard. Just submit a new sitemap with the working links. You can also make an error page with a link back to your homepage.

        • dmitriano in reply to Jim on August 4, 2012 at 8:16 AM:

          Hello, Jim!
          I do not know for sure, probably you are right, but I think that Google should not treat 301-redirects as double content.

  10. Carlos on July 22, 2012 at 1:52 PM:

    I WOULD KISS YOU IF I COULD ( Figuratively Speaking )!!!!!!!! It is because of people like you that make the internet such a beautiful place! This worked perfectly for exactly what I needed.

  11. Chris on July 29, 2012 at 1:03 PM:

    Thank you!

    You’re a true Joomla gangster.

    • DEVPROCB in reply to Chris on December 17, 2012 at 12:59 AM:

      Confirmed working on Joomla 3.0 as well

  12. edrick on August 8, 2012 at 5:02 AM:

    perfect…Many thanks from me..

  13. Rob on August 10, 2012 at 3:20 PM:

    doesnt work on 2.5.6 🙁

    • dmitriano in reply to Rob on August 11, 2012 at 2:54 PM:

      I did not tried it on Joomla 2.6 yet. What happening?

    • J in reply to Rob on August 13, 2012 at 5:23 PM:

      Does anyone have a solution for Joomla 2.5.6?

      • Prosolusindo in reply to J on August 14, 2012 at 1:35 PM:

        Works for me.. maybe you have shown article that not linked on menu. that’s why it causes error 404

  14. geleto on August 15, 2012 at 10:28 AM:

    This works on J2.6, but only partially.
    If you type the article link without the id – it works fine.
    If you type the article link with the id – it also works.
    But all the links pointing to the article, for instance from latest news, category layout, search, from the article itself (if title is link) – all have the id in them.

  15. Zuka on September 4, 2012 at 11:11 PM:

    You helped me alot. Everything working good on J. 2.5.6
    Does any of Joomla developers reads this tips…

  16. modra ideja on September 5, 2012 at 12:22 PM:

    Wow, so much trouble for a small but important detail…

  17. Pratap on October 3, 2012 at 2:45 PM:

    yes..its works perfect
    Thank you buddy!

  18. Polfeck on October 6, 2012 at 7:43 PM:

    Thanks dude, worked perfect on J 2.5.4

  19. Taptap on October 16, 2012 at 9:02 AM:

    Thank you very much.

  20. hmirs on October 16, 2012 at 12:58 PM:

    I test this solution in Joomla 2.5.7 and is work just fine ! Thanks !

  21. Daniel on October 22, 2012 at 11:43 AM:

    It works alright, next problem, is the fact that joomla won’t, reconize the HTML override file in template/HTML/com_content/router.php file, and for it to work, you have to override the original file.. Making it “dangerous” to update..

    • dmitriano in reply to Daniel on October 22, 2012 at 12:29 PM:

      I think, the only solution is to change router.php manually each time you upgrade Joomla. Certainly, it is some kind of a problem.

  22. E-on on October 26, 2012 at 4:36 PM:

    thank you this works in 2.5.7 and solves a dilema of creating a lame menu item everytime.

  23. Stefanos on November 3, 2012 at 8:47 AM:

    Very helpful. Works nice on my site.

  24. gaby on November 7, 2012 at 10:44 PM:

    Works very good, Thank you!

  25. Faisal on November 15, 2012 at 4:49 PM:

    Thanks for this tutorial

  26. Agustin on November 19, 2012 at 11:49 PM:

    Excelente.! lo he probado en mi web de prueba (versión J2.5) y funciona de maravilla. Actualmente estoy en J1.5 pero ya voy cambiando. Elimina los ID de la URL perfectamente… GRAN APORTE.!!

  27. Larry Dearing on November 26, 2012 at 4:08 PM:

    Great tip, i’ve been googling for this. We are “Keep-It-Simple” Joomla Solutions provider and prefer not not use 3rd party extensions unless necessary. We only needed to kill item id’s – otherwise Joomla native SEF works fine for most projects.

    Thanks again for the insight and sharing

  28. Anthony Celino on December 7, 2012 at 3:40 PM:

    Great Tutorial! works on Joomla 2.5.8.

  29. Brandon on December 14, 2012 at 11:11 PM:

    i’m getting a 404-error… something about the parent category 🙁

    would like to avoid using a 3rd-party SEF component/plugin just to remove the ID# from articles and categories in URL, but may have no choice. hopefully MijoSEF won’t slow me down too much.

  30. Anthony Celino on December 15, 2012 at 7:00 PM:

    Hi Admin,

    Great tutorial! works like a charm on my Linux Tutorial Website:

    More Power! and Thank You!

  31. Agustin on December 26, 2012 at 5:23 PM:

    Lo he probado en mi versión, aún demo (version Joomla 2.5.8) y funciona de maravilla… tremendo aporte a la comunidad 🙂

  32. Jorge on December 28, 2012 at 12:39 PM:

    Hi. I just tested it in Joomla Joomla! 3.0.2 Stable and it looks like working perfect: I don’t see any bug in my test site.

    Hola. He hecho un test de esta solución en Joomla 3.0.2 y creo que funciona perfectamente: No veo ningún bug en mi site de test.

  33. E.jr on December 28, 2012 at 2:25 PM:

    This works very nicely!
    Thank you for the awesome tutorial.
    I was tired of the SEF components that mess the whole site up, this is a very easy and clean method to simplify the URLs.

  34. nibelungen on December 29, 2012 at 2:26 PM:

    I tested the method on my Joomla 3.0 site. It’s good but it seems only to work if there’s a hyphen in the article alias, and I can still access the same page if I type it with article id on the address bar.

    For example, and both work

  35. nibelungen on December 30, 2012 at 5:24 PM:

    Another interesting thing that happens with this method is you can have endless article aliases in the url.

    So, if you have an article with the alias “article-1,” this url:

    and this one:

    will redirect to the same page.

    • dmitriano in reply to nibelungen on December 30, 2012 at 6:10 PM:

      I do not know for sure, but probably content component router initially works in this way.

  36. Willian on January 3, 2013 at 6:20 PM:


  37. Mantas Uosis on January 4, 2013 at 9:27 PM:

    these spells act on Joomla 3.0.2. both links “/ID-nameofarticle” and “/nameofarticle” will get you to the same article…

    but in the tile of blog articles link remain with ID.

    still thanks 🙂

  38. Mark Kevin Besinga on January 16, 2013 at 6:43 AM:

    thank you very much. it help me alot

  39. rjab oussama on February 25, 2013 at 6:42 PM:

    thank youuuuuuu very much.

  40. Big Ben Jr on March 2, 2013 at 8:06 PM:

    Thank you very much, still working !

  41. Khuong Duong on March 6, 2013 at 2:57 PM:

    Thanks for share. Work great !!!

  42. Teodor Ovcharov on March 13, 2013 at 2:29 PM:

    Thank you ! Works on Joomla 2.5.9 !

    Should I be worried about future Joomla updates ?

    • dmitriano in reply to Teodor Ovcharov on March 13, 2013 at 3:22 PM:

      You need to apply this changes each time you update Joomla.

  43. John Camelo on April 2, 2013 at 8:32 PM:

    Excelente tutorial, funciona en Joomla 2.5.9.

  44. Jorge M on April 11, 2013 at 11:21 AM:

    Hi. I think this workaround is no longer valid in Joomla 3.1 beta 3. I’m trying to do it and the code

    if (strpos($segments[0], ‘:’) === false) {
    $vars[‘view’] = ‘article’;
    $vars[‘id’] = (int)$segments[0];
    return $vars;

    is different. Can someone check it?
    Thanks. Jorge M

  45. Jorge M on April 11, 2013 at 11:27 AM:

    Sorry, my bad, i was doing a mistake, It’s working in Joomla 3.1 beta 3.

  46. Camilo Rosero on April 19, 2013 at 5:12 PM:

    Thank youuuuuuuu!!!!!!!!

  47. Mathias on April 29, 2013 at 4:59 PM:

    Not work of my site pleace help me 🙁


  48. Jorge on April 30, 2013 at 5:55 PM:

    I just updated my site to joomla 2.5.11 and the workaroung is no longer working. What can I before google start getting the change in the urlS?

    • dmitriano in reply to Jorge on April 30, 2013 at 6:24 PM:

      Hi! check the content of components\com_content\router.php probably this update overwritten your changes

  49. Mathias on May 3, 2013 at 11:00 AM:

    Hello dmitriano with the Sef urls that we want to solve otherwise specifically about the htaccess should go. send me an email if you would like to join

  50. Jorge M on May 7, 2013 at 8:51 AM:

    Thanks Dmitriano, it’s working now in joomla 2.5.10.
    I’m doing testing and i cannot make it work in joomla 3.11 despite it worked in joomla 3.1 beta.
    Can someone do another testo to verify? Thanks

  51. darkman on May 10, 2013 at 12:24 AM:

    Many Thx, i have tested it on joomla 2.5.11 and it rocks !

  52. m on May 11, 2013 at 11:01 AM:

    Jorge, I cannot get this to work on 3.1.1 either. If anyone knows of a fresh workaround, please share!

  53. max on May 23, 2013 at 1:24 PM:

    for me its working that means not showing the id number but one error comeing when i clicking the given url the error is ” 404 Article not found “. why this error coming in my to solve this error

  54. JB on May 24, 2013 at 7:40 AM:

    Thanks for your article. I tried this on Joomla 3.1.1. ID gets removed from URL but it results into 404 error. Any suggestion?

  55. AG on May 24, 2013 at 11:11 AM:

    Thanks, working on joomla 2.5.11

  56. Gerhard on May 27, 2013 at 8:05 PM:

    Hi, this doesn’t work for me on Joomla 3.1

    I tried both, template override and editing the core router file in com_content.

    Anyone got this working in J!3.1?

    • F. Saskiano in reply to Gerhard on July 10, 2013 at 3:53 PM:

      Modifying the router.php file works fine in 3.1 – buit – using a standard template override apparently does not work. Make sure both your browser and Joomla! caches have been cleared. I see no reason why a standard template override should not work…

  57. Martin Garcia on June 2, 2013 at 12:12 PM:

    Great article, very easy to do

  58. Al on June 6, 2013 at 10:26 PM:

    Its NOT working for me, I have 2.5.11
    I’ve followed the instructions above but I still have a number in my web link menu?
    Please help !

    • dmitriano in reply to Al on June 7, 2013 at 5:42 AM:

      Strange… It works for me on Joomla 2.5.11.

  59. Innocent on June 7, 2013 at 9:25 AM:


    It doesn’t seem to work for joomla 2.5.8.

    • dmitriano in reply to Innocent on June 7, 2013 at 9:57 AM:

      Hi! Two people said that it works for joomla 2.5.8. See comments above.

  60. responsive joomla on June 8, 2013 at 8:03 PM:

    this solution causes, that every article is reachable by 2 URLS, so it produces duplicate content, which is a no go.
    without id:
    with id:

    • dmitriano in reply to responsive joomla on June 9, 2013 at 8:32 AM:

      It is not a problem at all. Use 301 redirect. You could add the following to .htaccess (if you are using Apache)

      RewriteRule ^yourcategory/(\d+)-([\-a-zA-Z0-9_]+)/(\d+)-([\-a-zA-Z0-9_]+)/?$ yourcategory/$2/$4/ [NC,R=301,L]

  61. ajAdmin on June 12, 2013 at 7:47 AM:

    Works in Joomla 2.5.11 as well. Great article. I paraphrased with a link back to this article in our developer news area of I hope you do not mind.

  62. Steven on July 5, 2013 at 8:05 PM:

    Does anyone know how to get this to work in 3.1?

    Doing the above breaks Joomla – the URLs generated do indeed lack the IDs for categories and articles, but Joomla can’t actually find the article/category without the IDs:



    • Alex in reply to Steven on October 11, 2014 at 2:41 PM:

      Hi Steven,
      I get the same error after modifying router.php, could you solve it?
      I tried adding a parent category, but no luck,

      thanks for your help.
      Kind Regards,

  63. shashank singh on July 23, 2013 at 7:18 AM:

    Its not working in joomla 3.1
    plz provide the solution

  64. Ankit on July 29, 2013 at 8:17 PM:

    Brilliant!!! It works great

  65. Josep Sumalla on July 31, 2013 at 4:32 PM:

    After updating the version 2.5.11 to version 2.5.13 appeared articles IDs in the URL, big problem for Google indexing URLs since they are different and I had to redirect them all to appear Article ID in the URL . But with this brilliant explanation the problem was solved and now the URLs are as before the upgrade.

    ::: Thank You ::: Best Regards :::

  66. Kim Mã DPA on July 31, 2013 at 10:18 PM:

    I tested in Joomla 2.5.11. It works.
    and now I don’t need sh404sef component.
    Thanks so much.

  67. Nishant singh on August 6, 2013 at 8:48 PM:

    Thanks a ton. Worked out well. I am using 2.5.11. Really appreciate this article. 🙂

  68. Growling Tigers on August 11, 2013 at 6:25 AM:

    Works in Joomla 2.5.11! Thank you!

  69. Miranda Zobel de Ayala on August 18, 2013 at 6:12 AM:

    It works in Joomla 2.5.14 but with the following error – “Notice: Undefined index: id in C:\wamp\www\components\com_content\router.php on line 282”. I could suppress error reporting in my localhost but what about in my live site? Anybody knows of the probable future impact of this error in live site? Thanks!!

  70. yasar on August 24, 2013 at 2:20 PM:

    It works for joomla 2.5.14 .. Many many thanks!!!!

  71. Markus on August 29, 2013 at 11:37 AM:

    How it works for Joomla 3.1.5?

    • dmitriano in reply to Markus on August 29, 2013 at 1:21 PM:

      Hello, Markus!
      This method works only for Joomla 2.5-3.0. It does not work for Joomla 3.1 and higher. I wonder if someone have ideas about Joomla 3.1.

  72. smarn on September 3, 2013 at 3:49 AM:

    It works for 2.5.14..! Thanks A lot dmitriano !!

  73. ubuz on September 5, 2013 at 4:00 PM:

    Great! very good on Joomla! 2.5.14

  74. Astrid on September 23, 2013 at 9:46 PM:

    The Sef Advance mode option doesn’t appear here. Using Joomla! 2.5.14

    I have tried this little hack before on older Joomla! versions, and it worked like a charm! Any ideas as to why it doesn’t do anything for me now?

    Thank you!

    Best, Astrid

  75. Eduardo Alves on October 5, 2013 at 2:21 PM:

    Great! very good on Joomla! 2.5.14

  76. Kard Nails on October 9, 2013 at 1:27 PM:

    Yes, works all right in 2.5. Thanks for this.

  77. A'sio on October 13, 2013 at 8:22 PM:

    Hi Developers.

    Very for this solution, But there is one issue while creating category blog, it shows only a blank page.

    What I think is, this perfectly linking single article in a menu, While making a category blog. OOps

  78. Thong Tran on November 22, 2013 at 9:13 AM:

    Thanks for the post, dmitriano.

    I’ve wrote a blog post with other solution which don’t need to make a core-hacking. Please take a look at Remove Joomla 3 Tags ID in the URL

    Thong Tran

  79. stobyland on December 23, 2013 at 10:37 AM:

    This solution worked till now. But with the last update (2.5.17)no longer works.

  80. Floyd611 on January 3, 2014 at 3:53 PM:

    Hi all,
    I have placed the “router.php” file in:
    /templates/MY-TEMPLATE/html/com_content/router.php and not working.
    Appear always the ID of the article.

  81. Rooo on January 6, 2014 at 12:47 PM:

    Not working into joomla3.1

  82. Alex on January 14, 2014 at 5:30 PM:

    Thank you very much! Great and simple article. Working with Joomla 2.5.16.

  83. Youkepo on March 3, 2014 at 4:47 PM:

    It works for me on Joomla 3 but when i click the title, it will show 404 Pages

  84. thạnh on March 13, 2014 at 3:20 AM:

    Thanks you verry much!!!!!!!!
    A article useful to everyonce.
    I love you!

  85. MAGED on March 15, 2014 at 9:51 AM:

    I tested on my website which is online, already published, and now articles are 404.
    Please help.

  86. MAGED on March 15, 2014 at 11:17 AM:

    with version is Joomla! 3.2.1.
    all articles who linked with a menu are working fine, only articles in Category Blog showing 404 error.
    I have already made on .htacces file.
    Any idea?

  87. bad boy on April 1, 2014 at 12:39 AM:

    the article alias must be a minimum of two words! 😉

  88. Kala Mohan on April 4, 2014 at 6:29 AM:


    Thanks for this wonderful post. I tried in J3.2.3 and getting 404 page. Any other workaround available for this.

  89. Galisha on April 21, 2014 at 5:02 PM:

    I also tried in joomla 3.2.3
    it works for some pages, but not all.
    It is strange

  90. I am what I am on April 28, 2014 at 5:35 AM:

    It seems to be working fine in Joomla 2.5.19. It didn’t seem like it at first, but I checked it out and it looks fine.

  91. tried to find support from Joomla forum, other forums as well as googled to fix the article ID number in each URL in Joomla, yet I still could not fix

  92. David on May 22, 2014 at 9:35 AM:

    Man, I’ve got Joomla 3, and can’t figure it out. I don’t know why they do it. It just doesn’t make sense!

  93. Ryan on May 22, 2014 at 6:22 PM:

    It is not working for me after updating to Joomla 2.5.20

    I redid router.php after the update, but nope. Not working 🙁

  94. Andrea on July 16, 2014 at 9:52 AM:

    At the Joomla 3.3 doesnt work. The explanation (i think) is because at the config.xml file, the sef configuration doesnt exist anymore.

  95. David Kley on July 17, 2014 at 8:42 AM:

    Without an extension, the only way to remove the article id is to create a menu item leading to the article. Once you have done this, the id will disappear, and will also get rid of the leading category URL.

    Example before:
    Example before:

    IMO this is much better for seo, unless you need the subcategories displayed

  96. Sandro on August 1, 2014 at 1:34 PM:

    Wonderfull works great in all my websites

  97. amziyal on September 2, 2014 at 9:11 AM:

    This can’t seem to be working on Joomla 3.24. Please advise.

  98. DavidXian on October 2, 2014 at 1:11 AM:

    Work on Joomla 3.3.6 just by changing sef_advanced_link value from 0 to 1. But just as the others, both with-id and without-id links are accessible.


    Work on ‘Category Blog’ and ‘Category List’ too. But didn’t work on Tags and ‘List of tags’ (not 404 error though, just “No matching items were found.”)

    NOT working:

    • Evelynrad in reply to DavidXian on January 2, 2015 at 7:25 AM:

      Have you test by creating menu of “artistlist”?

  99. umut on November 19, 2014 at 9:29 AM:


  100. I am what I am on December 6, 2014 at 2:15 AM:

    I just upgraded to 3.3.6 and it still works. You have to clear your cache.

  101. Guenscher on January 7, 2015 at 6:30 AM:

    Hello, I can’t do it right because when I treminated to put these codes above I can see the Sef Advanced Mode im my cpanel

  102. Guenscher on January 7, 2015 at 6:31 AM:

    Please someone can help me friendly?

  103. Guenscher on January 7, 2015 at 6:35 AM:

    Take a look of this link so I want to see it like . Please help me my friends. It’ 3 am in my country so I can’t sleep because I want to resolve it.

  104. aldy on January 16, 2015 at 6:55 AM:

    not working at joomla 3.2.3

  105. Tony on February 27, 2015 at 8:06 AM:

    i’d like to thank a lot for this post.
    It fixed my issue!!!
    I use joomla 2.5.28 and it works fine!
    Very, very thanks
    Best regards

  106. Susan on February 27, 2015 at 8:35 AM:

    To be frank, I cannot understand what you say partially. I’m looking for an easy way to remove the article ID of Joomla article. I’m searching on the web and have found, telling me how to do this using code. However, I want something easier. Is there any suggestion?

  107. pepperstreet on March 14, 2015 at 2:41 AM:

    1.) You might create single Article MenuItems… either in a hidden or visible menu. Most applicable on sites with less items… but you might also streamline this tedious process with an extension:
    Auto-Menus with Kazaam!
    Or something like Add-to-menu
    2.) Try a 3rd-Party SEF extension:
    Either a bigger solution if you need more features and options. i.e. sh404SEF, MijoSEF, and others…
    Or a specific solution like “Direct Alias” by AlterBrains. Available in free and pro version.

    Good luck!

  108. Health Tourism on March 16, 2015 at 3:49 PM:

    You’re a true Joomla gangster.

  109. Gaurav Agrawal on April 14, 2015 at 8:03 AM:

    I have used your trick to hide ID’s from URL.It works fine when I choose “Category List” to display in non-display menu.But when I used to “Single Article” in menu,it redirects to 404 page and error display is:

    Please help me with this problem.

    Thanks in advance.

  110. Parvesh Sareen on August 12, 2015 at 8:54 AM:

    Not working for me. Not sure if i am missing something. I have got Joomla! 2.5.14 and also AceSEF plugin installed. Please let me know if it affects the SEO friendly structure of URLs

  111. I am what I am on October 17, 2015 at 5:09 PM:

    Just updated to 3.4.4 and seems to be working fine.

  112. Knot Together on January 10, 2016 at 12:58 PM:

    I use Joomla! 3.4.8 Stable and the hack of dmitriano works fine for me.

    Thanks to dmitriano

    by Richard from Knot Together

  113. Paulo on April 21, 2016 at 5:59 PM:

    Thank you. It’s Work!

  114. Ran on April 22, 2016 at 2:52 PM:

    I have been using this hack for years but just found that it only work if the Alias are more than one word. For example, if the URL is you’ll get an 404, but if you use it will work. This only applies to Articles alias, not menus.

    • Ran in reply to Ran on April 22, 2016 at 2:54 PM:

      I should have added that is dose no applies to tags URL as well.

    • CH09 in reply to Ran on November 14, 2016 at 9:25 AM:

      Did you find a solution for one-word alias ?

  115. Paulo on April 25, 2016 at 9:10 PM:

    Not funf in joomla 3.5.1

  116. Paulo on April 25, 2016 at 9:18 PM:

    Now it’s funf!!!

    Create the file config.xml, add this code above and upload to administrator\components\com_content


  117. kostas on June 11, 2016 at 7:06 PM:

    Thank you very much, still working !

  118. ramonsantos on July 2, 2016 at 11:24 PM:

    Thank you very much, you resolved my problem. 🙂

  119. Kamil N. on July 28, 2016 at 7:58 AM:

    It’s still needed and still works on 3.6.

  120. Anton on August 14, 2016 at 1:44 PM:

    Still not work on Joomla 3.6.2. Help!

  121. expert67 on August 23, 2016 at 7:44 PM:

    Joomla 3.5

    From : (line 34)
    // Get a menu item based on Itemid or currently active
    $params = JComponentHelper::getParams(‘com_content’);
    $advanced = $params->get(‘sef_advanced_link’, 0);
    // Get a menu item based on Itemid or currently active
    $params = JComponentHelper::getParams(‘com_content’);
    $advanced = $params->get(‘sef_advanced_link’, 1);

    From: (line 294)
    // Get the active menu item.
    $item = $this->menu->getActive();
    $params = JComponentHelper::getParams(‘com_content’);
    $advanced = $params->get(‘sef_advanced_link’, 0);
    $db = JFactory::getDbo();
    // Get the active menu item.
    $item = $this->menu->getActive();
    $params = JComponentHelper::getParams(‘com_content’);
    $advanced = $params->get(‘sef_advanced_link’, 1);
    $db = JFactory::getDbo();

    From: (line 451)
    ->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($db->quote($segment)));
    ->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($segment));

  122. Ian on September 2, 2016 at 10:52 PM:

    Just updated to 3.6 and seems to be working fine.

  123. Kala Mohan on September 22, 2016 at 6:48 PM:

    This is working for J3.6.2 articles & categories. But not for tags. I am getting 404 error for Tags. Any help with Joomla Tag URLs.

  124. cars agadir on February 11, 2017 at 11:34 PM:

    I think this is very bad for SEO purpose (and i think remove the ID is mostly for SEO purpose)

  125. Iulian on April 26, 2017 at 11:45 AM:

    For new Joomla 3.7 working?

  126. Pete Lorocco on July 6, 2017 at 2:11 PM:

    Here’s the answer ppl.
    One of my students pointed me to this forum thread page, as she searched the answer- then came and asked me for help.
    Do this:
    You go to the administrator/components/com_content/config.xml file, and paste the following code:


    Save the file.


    Log to your joomla, and go to Global Configuration. Down the left side is a sidebar which has a bit of a heading “Component”. Look for “Articles”.

    Select it.

    You’ll see tabs in the upper area of the window. The second last tab from the right is “Integration”.

    Select it.

    When the content appears- the final ‘item’ will say ‘Sef Advanced Mode’. This freedom of choice! was created by pasting the code into the config.xml file.

    Select “Yes”, click the “save” button- and your Blog IDs are gone. It’s likely that this item could require attention, when you next upgrade Joomla- and the solution might not work on future versions.

    Reach out through my website- and I’ll provide an answer.


    Pete Lorocco

  127. Top Gaming Mice on July 13, 2017 at 10:51 AM:

    very useful tip for me this is awesome

  128. Porady prawne on October 23, 2017 at 4:50 PM:

    It works in Joomla 3.8 ! Great job.

  129. Ian on November 17, 2017 at 6:41 AM:

    I just updated to Joomla 3.8.2 and this looks different. The file router.php does not include the same info as above. IDK if I am missing something but this file appears to have changed and this doesn’t work.

    It did work for me before but not now. “sef_advanced_link” is gone. Now there is “sef_advanced” and it’s only mentioned once in the file not twice like the old.

    I couldn’t find the lines:

    if (strpos($segments[0], ‘:’) === false) {
    $vars[‘view’] = ‘article’;
    $vars[‘id’] = (int)$segments[0];
    return $vars;

  130. Ian on November 17, 2017 at 6:51 AM:

    O.k. I found a SOLUTION:)! Yay Joomla!
    go to articles>options>integration>url routing>modern>remove id’s from url’s>yes

    Clear caches and voila it’s gone. no more editing this file.

Leave a Reply

Your email address will not be published. Required fields are marked *