I’m building a new site using Joomla and I’ve selected ‘Search Engine Friendly URLs’ and ‘Use URL rewriting’ in the Global Configuration which gives good SEF URLs but not quite perfect!
If a link to a page doesn’t have a menu item associated to it the URL would look like this:
example.com/10-category/5-article
I want to remove the numbers and the hyphen using htaccess so it looks like:
example.com/category/article
I’ve made Rewrite Rule’s in my htaccess file that looks like this:
RewriteRule ^([0-9]+)-(.*)/([0-9]+)-(.*)$ /$1$2/$3$4 [R=301,L]
RewriteRule ^([0-9]+)(.*)/([0-9]+)(.*)$ /$2/$4 [R=301,L]
The browsers address bar now shows the URL I want, example.com/category/article but the page shows a 404 error!
Is it something to do with the Joomla SEF?
What am I doing wrong?
*Update*
The first RewriteRule which removes the hyphen only works OK by itself, I only receive the 404 error page when both RewriteRule’s are active.
This is a blind guess, Joomla probably needs those numbers to know which content to serve. It cannot just tell by the name of the category or article (in fact in most of these cases you can even leave it out), but it’s the number that’s important.
So when you’re rewriting the URL without the numbers, you’re requesting pages that Joomla has no idea how to handle, and it’ll give you a 404. The only solution would be to write a plugin or something that maps the names of categories and articles to the corresponding IDs, but that’s not going to be easy.
Concerning SEO, I don’t think the number in the url is that much of a negative effect. If the rest of your website’s SEO is good then this won’t matter.