?
avatar AmmarAbuQoura
AmmarAbuQoura
20 Dec 2015

Steps to reproduce the issue

activate the Language Filter Plugin go the administrator and get any article id
no in the front end of the site try to but www.yadordomain.com/[anyrandom word]/[article id]

Expected result

return 404 error

Actual result

load the article in the home page

System information (as much as possible)

Database Version 5.5.46-cll
Database Collation latin1_swedish_ci
PHP Version 5.4.44
Web Server Apache
WebServer to PHP Interface cgi-fcgi
Joomla! Version Joomla! 3.4.6 Stable [ Ember ] 15-December-2015 11:11 GMT
Joomla! Platform Version Joomla Platform 13.1.0 Stable [ Curiosity ] 24-Apr-2013 00:00 GMT

Additional comments

if you stop the Language Filter Plugin this will work as expected and return 404 error

Votes

# of Users Experiencing Issue
2/2
Average Importance Score
5.00

avatar AmmarAbuQoura AmmarAbuQoura - open - 20 Dec 2015
avatar ItsReallyMeDE
ItsReallyMeDE - comment - 20 Dec 2015

My testing shows:
www.mysite.de/component/content/article/40
www.mysite.de/foo/40
www.mysite.de/bar/40
will all display article id=40
This behavior is NOT new in 3.4.6 It is also in 3.4.5
This behavior is NOT related to language filter plugin (I have it turned OFF)
Apparently, I have SEF enabled.

This behavior is NOT what it should be, I guess...


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/8744.

avatar AmmarAbuQoura
AmmarAbuQoura - comment - 20 Dec 2015

sure this will generate unlimited pages with same title and meta information and this will kill the site on google


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/8744.

avatar infograf768
infograf768 - comment - 20 Dec 2015

This is unrelated to the use or not of the language filter plugin.
Please correct the title of this issue

avatar AmmarAbuQoura
AmmarAbuQoura - comment - 20 Dec 2015

what the best title should i but here
and i don't know why but if i stop the plugin the page no longer open it's return 404 error


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/8744.

avatar AmmarAbuQoura AmmarAbuQoura - change - 20 Dec 2015
The description was changed
Title
Search Engine Friendly URLs and Language Filter Plugin
Search Engine Friendly URLs
avatar AmmarAbuQoura AmmarAbuQoura - change - 20 Dec 2015
Title
Search Engine Friendly URLs and Language Filter Plugin
Search Engine Friendly URLs
avatar Bakual
Bakual - comment - 20 Dec 2015

his will kill the site on google

Actually, Google doesn't care about same content with multiple URLs (duplicate content) as long as it is on the same domain. Especially if the canonical URL is set properly (which is an area in Joomla that needs improvement afaik).
Duplicate content is only a big issue if it's on different domains.

Keep also in mind that even if multiple (or random) URLs are accepted as valid and return the article, it isn't automatically duplicate content for Google. Google doesn't try randomly URLs, it follows the existing ones. Thus as long as the URLs on your page are all the same, Google will have no issue at all.
If Google tells you there are multiple URLs for the same page, then you should first figure out where those are generated. Maybe there is the real issue to fix.

avatar AmmarAbuQoura
AmmarAbuQoura - comment - 21 Dec 2015

it's not just about google also the site will look missed up when the article show in home page and many seo report that i have until now tell me that there is a problem with the duplicated content and all of them look like the situation i'm talking about (the are not linked from any other page)


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/8744.

avatar brianteeman
brianteeman - comment - 21 Dec 2015

The ONLY way that an SEO report could find the url is if you are linking to it


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/8744.

avatar AmmarAbuQoura
AmmarAbuQoura - comment - 21 Dec 2015

so there is no way to solve this issue ??!!


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/8744.

avatar Bakual
Bakual - comment - 21 Dec 2015

Not with the way the current router works. There is a new router in progress, but I'm not sure if it takes care of this. And I'm not even sure if it should. I don't have an issue if Joomla can figure out a valid article from an URL, as long as the generated URL for that article is always the same (and thus the canonical one).

avatar ggppdk
ggppdk - comment - 5 Jan 2016

@AmmarAbuQoura

so there is no way to solve this issue ??!!

i do not understand
how can this be called an "important" issue, if there is no page that generates these URLs ?

  • if there is one, please provide it

also a similar case but not same case, is the id:alias or id-alias in URLs, you can change the alias part and the URLs are still valid, not only this is not a bug, but it prevents old URLs from becoming invalid if alias is changed

  • further more if your home page menu item is not com_content menu item, then some other router will handle it, and it will behave differently (last menu item in the URL is asked to interpret the URL, because it is the active menu item and in your case active menu item is the home page menu item)

about the described behaviour it is not difficult to invalidate the URL, (but i do not think it is needed to do)

  • in your case you have 2 segments (=2 parts that are not menu item aliases)

copying from the parse() function of the router file of com_content component:
/components/com_content/router.php

  • the part that runs and produces the described effect:
/*
 * If there was more than one segment, then we can determine where the URL points to
 * because the first segment will have the target category id prepended to it.  If the
 * last segment has a number prepended, it is an article, otherwise, it is a category.
 */
if (!$advanced)
{
    $cat_id = (int) $segments[0];
    $article_id = (int) $segments[$count - 1];
    if ($article_id > 0)
    {
        $vars['view'] = 'article';
        $vars['catid'] = $cat_id;
        $vars['id'] = $article_id;
    }
    else
    {
        $vars['view'] = 'category';
        $vars['id'] = $cat_id;
    }
    return $vars;
}

THE IF part runs and the returns ...

    $cat_id = (int) $segments[0];
    $article_id = (int) $segments[$count - 1];
    if ($article_id > 0)
    {
        $vars['view'] = 'article';
        $vars['catid'] = $cat_id;
        $vars['id'] = $article_id;
    }
  • if we check that $catid is zero (your described case) then, we can make zero the article id to and thus invalidate the URL,
  • or even if category id is zero, to make it more strict we can query the categories table to check if $segments[0] is the category alias, or some similar check, parse() already queries categories table for alias (queries in the parse() method are legitimate because (usually/normally) only 1 URL is checked, unlike build() where it may be used to create hundrends of URLs)
avatar brianteeman brianteeman - change - 8 May 2016
Status New Closed
Closed_Date 0000-00-00 00:00:00 2016-05-08 22:43:29
Closed_By brianteeman
avatar brianteeman brianteeman - close - 8 May 2016
avatar brianteeman brianteeman - close - 8 May 2016
avatar brianteeman
brianteeman - comment - 8 May 2016

Closed as there has been no response to the last questions. This can always be reopened if updated


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/8744.

Add a Comment

Login with GitHub to post a comment