You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
navigate to example.com/Essays/foo.html in joomla 3, and then in joomla 4
test this with a similar url but all lowercase example.com/essays/foo.html
Expected result
It is expected that the URL would result in the same page and to be correctly processed by the component for the 'essays' menu item whether using J3 or J4.
Actual result
This works fine in Joomla 3, but not in Joomla 4 which creates a 404 error
If one uses the lowercase version, it works OK
System information (as much as possible)
It appears that the Joomla 3 router parse rules (SiteRouter.php / function parseSefRoute() use strtolower on the uri path before making comparisons with the available menu item aliases. However the Joomla 4 equivalent does not.
For example in Joomla 3 the relevant search for matching menu items is made with the test:
if ($item->route === $route_lowercase)
where $route_lowercase has been created using strtolower()
in Joomla 4 the corresponding test is
if ( $item->alias == $segment ... )
without the $segment having been forced to lowercase.
Additional comments
This is an issue backward compatibility in a number of cases. If faced with this issue the user appears to have only the alternative of forcing a redirect for URL's that contain upper case (redirect versus internal rewrite) and in so doing may lose pagerank for valuable pages
The text was updated successfully, but these errors were encountered:
Steps to reproduce the issue
Expected result
It is expected that the URL would result in the same page and to be correctly processed by the component for the 'essays' menu item whether using J3 or J4.
Actual result
This works fine in Joomla 3, but not in Joomla 4 which creates a 404 error
If one uses the lowercase version, it works OK
System information (as much as possible)
It appears that the Joomla 3 router parse rules (SiteRouter.php / function parseSefRoute() use strtolower on the uri path before making comparisons with the available menu item aliases. However the Joomla 4 equivalent does not.
For example in Joomla 3 the relevant search for matching menu items is made with the test:
if ($item->route === $route_lowercase)
where
$route_lowercase
has been created using strtolower()in Joomla 4 the corresponding test is
if ( $item->alias == $segment ... )
without the
$segment
having been forced to lowercase.Additional comments
This is an issue backward compatibility in a number of cases. If faced with this issue the user appears to have only the alternative of forcing a redirect for URL's that contain upper case (redirect versus internal rewrite) and in so doing may lose pagerank for valuable pages
The text was updated successfully, but these errors were encountered: