Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[6.0] Router: Enforce suffix by default if enabled #44480

Draft
wants to merge 3 commits into
base: 6.0-dev
Choose a base branch
from

Conversation

Hackwar
Copy link
Member

@Hackwar Hackwar commented Nov 19, 2024

Summary of Changes

This PR changes the feature introduced in 5.2.0 to be able to enforce a suffix ending if it is enabled and makes this the standard behavior. It removes the option from the SEF plugin and moves the code to the SiteRouter class, at the same time using the "tainted URL" feature from #44455 to prevent unnecessary redirects.

Testing Instructions

  1. Enable SEF URLs with suffix ending.
  2. Open a random URL of the site and remove the suffix
  3. Open a random URL of the site and replace the suffix with something else and add ?format=html to the URL
  4. Open a random URL of the site, remove the suffix and add ?format=html to the URL

Actual result BEFORE applying this Pull Request

Joomla loads all the URLs without any redirects.

Expected result AFTER applying this Pull Request

All URLs are redirected to the version with .html at the end.

Link to documentations

Please select:

  • Documentation link for docs.joomla.org:

  • No documentation changes for docs.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

@joomla-cms-bot joomla-cms-bot added Language Change This is for Translators PR-6.0-dev labels Nov 19, 2024
@HLeithner
Copy link
Member

I have tested this item 🔴 unsuccessfully on 9873b77

* install pr

  • install sample data
  • open website blog entry "Welcome to our blog" (/blog/welcome-to-your-blog) in new tab and let it stay open
  • change setting "Add Suffix to URL" to yes
  • reload page opened before: 0 Call to undefined method Joomla\CMS\Router\SiteRouter::setTainted()

Expected a smooths transition, at least not a fatal error


#	Function	Location
1	()	JROOT/libraries/src/Router/SiteRouter.php:203
2	Joomla\CMS\Router\SiteRouter->parseFormat()	JROOT/libraries/src/Router/Router.php:384
3	Joomla\CMS\Router\Router->processParseRules()	JROOT/libraries/src/Router/Router.php:144
4	Joomla\CMS\Router\Router->parse()	JROOT/libraries/src/Application/SiteApplication.php:738
5	Joomla\CMS\Application\SiteApplication->route()	JROOT/libraries/src/Application/SiteApplication.php:243
6	Joomla\CMS\Application\SiteApplication->doExecute()	JROOT/libraries/src/Application/CMSApplication.php:306
7	Joomla\CMS\Application\CMSApplication->execute()	JROOT/includes/app.php:58
8	require_once()	JROOT/index.php:32
```<hr /><sub>This comment was created with the <a href="https://github.com/joomla/jissues">J!Tracker Application</a> at <a href="https://issues.joomla.org/tracker/joomla-cms/44480">issues.joomla.org/tracker/joomla-cms/44480</a>.</sub>

@Hackwar
Copy link
Member Author

Hackwar commented Nov 21, 2024

That is why it says "tainted URL" feature from #44455 and since that PR is not merged yet, this PR indeed fails.

@HLeithner HLeithner marked this pull request as draft November 21, 2024 16:59
@HLeithner
Copy link
Member

I changed this to draft since it's not ready

@Hackwar Hackwar added Feature b/c break This item changes the behavior in an incompatible why. HEADS UP labels Nov 23, 2024
@Hackwar
Copy link
Member Author

Hackwar commented Nov 23, 2024

I added the b/c break label because technically it removes anoption and forces this behavior on everyone, even though it is the expected behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
b/c break This item changes the behavior in an incompatible why. HEADS UP Feature Language Change This is for Translators PR-6.0-dev
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants