chgChanged default time out for communication with server from 10 to 20 seconds
chgSome <4SEF: no option value set in URI> errors are still logged, building up large log files
chgTags component was hardcoded to use Joomla SEF URL, now changed to allow 3rd-party to write their own.
bugLanguage switcher uses same language code for all languages
chgRemoved use of int(nn) in SQL tables declaration or update
chgSuppress button press highlighting by some browser on mobile devices
chgUpdated ESBuild config to use actual file content hashes (esbuild hashes are not content hashes)
chgshowall on multipage articles causes a 404 and is not recorded in 4SEF SEF URLs list
chgMinor tweaks for Joomla 5 compatibility
chgAdded ability to add translation for new languages, or override existing translations, by dropping a json file in a subdirectory of /libraries/weeblr
chgAlways suppress the menu Itemid variable from com_content URLs query variables
chgWhen customizing a Tags URL, that customized URL may not be used and additional records are created for it
bugAdding non-standard query variables to URLs that have been manually customized prevents the customized URL to be used
bugOn some multilingual websites, it may not always be possible to switch back to default language
bugOn multilingual websites, logging in when site is offline may not always work
chg(Tiny) performance increase by using better MYSQL count function
bugCategory blog with added tag(s) selected do not make use of the tag(s)
newAdded full translation into Arabic, Finnish, Greek, Hungarian, Norwegian, Romanian, Swedish and Chinese
chgWorkaround for still building SEF URLs in cases where Joomla 4 router does not, because no menu item id can be found for the orginal, non-sef URL
chgRemoved calls for translators from admin app footer
chgDo not log <4SEF: no option value set in URI> errors to file, may lead to large log files on very busy sites
chgApply All lowercase option to SEF URLs manually customized by users, to ensure consistency and avoid useless redirects
chgNow including site host hash and current version in subscribers update authorization request
bugHome page RSS feeds may trigger a 404
bugDisabling Customize all duplicates options has no visible effect.
chgAdded JCE and ContentHistory to the list of non-routable components, for which URLs should be left non-sef
bugMenu items to home page can sometimes not be recognized as such and use the menu item alias instead of the home page link
newAdded Portuguese translation
newAdded Polish translation
newAdded Lithuanian translation
newAdded Italian translation
newAdded Spanish translation
newAdded German translation
chgAdded full Czech translation by Ľuboš Beľan
chgAdded global API accessor for hook system, allowing listening easily to extension events
chgRevised category URLs URL customization: can now add a suffix to category URLs, and all duplicates are also redirected after a customization
chgAdded option for category feeds safe mode, using format and type query vars instead of path segments
chgRemove large white border around 4SEF display area in Joomla 4 admin
chgChanged API endpoint address to /index.php/_wblapi. Also always include nolangfilter=1 in API requests, to prevent language filter redirects
chgNow forcing application/json content type on all POST/PUT/PATCH/DELETE fetch requests, should reduce mod_security incorrectly blocking requests
bugTypo in rel=noopener attribute on some external links
bugPHP error when triggering updates through the Joomla 4 command-line application
bugPHP warning about weblinksSlugForUncategorizedWeblinks on Weblikns component
bugSEF URLs for Weblinks component are not properly built, use Joomla SEF
bugIncorrect input validation allows entering invalid URLs when creating a SEF or customizing one.
bugWrong link to requirements page on warning displayed on unsupported browsers
chgPrevent trying to save a new URL pair without providing a non-SEF
chgNow defining 4SEF_IS_INSTALLED constant at startup and 4SEF_IS_RUNNING if enabled
chgAdded note that Add URL suffix option must be set to No on Joomla 3 websites when using any other suffix than .html
chgNow using /index.php as API endpoint, should reduce false positive and blocking by security systems on some servers
chgCreating or editing articles may not work when using some 3rd-party articles manager
chgBlur update key when input field not focused
bugSmart title option for multiple articles is not smart enough to work when the page break code in a page does not follow the default ordering created by TinyMCE on Joomla default installation
option tooltip, showing wrong syntax to insert in article.
chgBetter CSS at low width for Joomla 4
newNew full Slovak translation by Lubos
chgRemoved option to not have any category included in categories URLs
newAdded full Danish translation by Ronny Buelund
chgUnder some circumstances, Joomla may find a different menu item to use with a URL if 4SEF is in use or not.
chgTypos in French translation (thanks GFCom)
chgDo not enforce a language when none is present in the non-sef URL
bugPossible PHP warning or error on some Virtuemart pages
bugUser account reset and remind options use Joomla SEF URLs
chgBetter display of admin page if an error occurs (system plugin is disabled for instance)
chgAdded workaround for cases Joomla router does not remove non-sef variables from URI object, and they were re-appended to SEF URL (eg: /my-article?view=article&id=12&catid=34)
bugUnder some circumstances, on Joomla 4, home page links may not be recognized as such
bugWhen extensions add non-standard variables to Joomla content non-sef, these variables are not passed through as query vars in the resulting URL but are instead stored as part of the non-sef
bugWhen some extensions are set to use Joomla router (Bypass option), links on some 404 pages are the Joomla ones, not the 4SEF ones.
chgPrevent fatal error when creating/editing a SEF URL pair with invalid data
bugWhen a component is set to use Joomla SEF URLs, it should still get the URL suffix configured in 4SEF, not the default Joomla one, .html
bugControls to insert article ID in URL should offer to inject id before or after the article name. Id injection does not work due to this.
chgLet Joomla (4) handle all rewrite prefix and URL base (when in a sub-folder). Fixes issue with some extensions when they create redirect URL on the fly.
bugforsef_normalize_non_sef filter has no effect, was added as an action instead of a filter
bugJoomla 4 accessibility plugin preview does not work
chgHandle links in modules to articles where neither articles not their category is linked from any menu. Joomla cannot handle this sort of links, but they can be found sometimes.
chgRemoved unused sh404SEF legacy code that was left for reference only
chgAdded code to execute legacy sh404SEF shURLs.
chgBetter layout at very low width
bugSetting for whether to include menu item title in Uncategorised category links is not properly imported from sh404SEF
bugPagination not created properly on Joomla 4
bugCannot save extension configuration if they have a space or other special character in their display name
bugActual PHP fatal errors are not logged to error file when building some URLs, instead a Call to a member function error() on null error is logged.
chgIf website has no Content Language set, sh404SEF URL import cannot work. Now fall back to installed language to allow import despite misconfiguration
chgStop using print_r in install script, may cause high memory consumption for some errors
chgAdded workaround for legacy URLs with dot(s) in path breaking on Joomla 4 when they also have a trailing slash
chgAdded a forsef_should_leave_non_sef filter to let developers and admin easily leave non-SEF any URL without the need for a plugin
chgAdded workaround to Virtuemart not using routing API properly on Joomla 4. Must still set parsed values into VM vRequest class
chgAdded handling backward-incompatible changes in Virtuemart 4.x
bugOn multipage content articles, second and more pages do not have a proper page number
bugMake main on a duplicate has no effect
bugOn Joomla 4, if both Joomla suffix and 4SEF suffix are enabled, suffix is added twice
bugCategories structure selector in Virtuemart product details page were not taken into account
newAdded nearly complete translation to Dutch by Davy Renckens
bugExact search option does not work on some list pages.
chgTiny tweaks to user interface, fixed panels sliding in not always working when editing an item
bugSubmit new article links do not work, go to home page
newAdded simplified interface for other extensions to detect if 4SEF is installed and running.
newAdded full French translation
chgAdded hook for pagination chrome file loading. Allows adding a filter to fix templates (such as T3-based from Joomlart) breaking pagination by having their own JPagination class override due to non-standard template override loading method
chgChanged user interface keep alive URL from /ping, which is sometimes blocked by mod_security
bugNot testing for disallowed leading/trailing slashes for some settings (content default blog name and contact categories suffix)
newAdded full Russian and Turkish translations, thanks to Алексей Хорошевский (Aleksej Khoroshevskij) and Mehmet Taş
chgAdded text when no item is selected in category or extension selector
bugMetadata imported from sh404SEF is not used when SEF URL suffix (.html) is enabled in sh404SEF
bugPossible PHP warning on some menu items links (menu item aliases mostly)
chgInternal: moved isHomePage and isAnyHomePage methods to shared library
chgInternal: moved isAnyHomePagePath method to shared library
chgInternal: moved query variables method to shared library
bugOption to configure which categories to include in an article URL has no effect. Option for categories links was wrongly used instead
2022-06-07Version 1.0.0 beta
chgMain menu active now highlighted with accent color
chgAdded automatic loading of plugins in the forsef folder, allowing 3rd-party providers
bugWhen customizing multiple pages with paginated versions, there is a missing / between the customized path and the pagination string
bugImport resume function does not work if import is started again right away, or is cancelled, without reloading the page
bugRss and Atom feeds should not be imported as they are now dynamically generated
bugPossible double .html suffix when importing URLs from sites where this Joomla option is enabled.
chgAborting import now also cancels next request, if it was already scheduled
chgAdded logging and display of errors happening during import. Import not stopped any longer in case of error.
chgSwitched to storing all URLs in UTF8MB4 mysql format
chgWhen menu item is an alias, follow the alias to retrieve number of items per page option for category blog pages
bugWhen an extension does not have a dedicated SEF URL plugin, duplicate URL can sometimes be unrecognized and stored as a separate URL instead of a duplicate
bugWhen an extension does not have a dedicated SEF URL plugin, on multilingual sites, the language code in non-default languages is added twice
bugWhen an extension is set to Use Joomla SEF url, variables passed as query variables are not excluded and are stored to the database
bugMenu item display parameters should override default global configuration, not the other way around.
bugPossible PHP warning when creating com_content URLs
chgAdded side outline to drop-down sections of main menu
chgList of most requested pages is now an actual table
bugUse Contact category alias option still does not work for single contact URLs.
bugRequested pages graph has incorrect Y-axis origin, spills over X-axis
chgImproved reliability when one or more extensions are set to Bypass 4SEF routing and use Joomla routing instead: we now check if the Joomla router parsing result is consistent with the list of extensions set to use it.
chgExecute automatic redirects for customized URLs before passing control to Joomla router if some extensions are configured to do so, prevent missing some redirects due to the router thinking the URL is valid when it's not.
chgAdded JCE and ReReplacer to list of hidden extensions
chgClearer URLs count display on dashboard, count custom canonicals separately
chgOptimized query that counts total number of URLs before displaying the main pages list
bugContact items links do not comply with the Use category alias configuration option
bugEdit article links should be left non-sef
bugCategory views are missing their trailing slash
bugPossible PHP warning on main URLs page display
chgSEF URLs are not created if Joomla SEF is disabled in global configuration (not the case with sh404SEF)
chgAdded count of duplicates to dashboard
bugPagination is not added to URLs for components set to Use Joomla SEF instead of regular processing.
bugIn case of a 404, on Joomla 3, a raw error message is displayed instead of Joomla default error page
bugRequesting /index.php (with no query) triggers a 404 if URL rewriting is enabled
bugUpdate access key may be lost from Joomla 4 update sites page list on some sites.
chgURLS import from sh404SEF can now resume from where it stopped in case of interrupted connection with the server
chgAlso attach 4SEF rules to joomla site router when in admin, allows generating frontend SEF URLs from the admin.
chgAlso cache top requests data on dashboard
bugNotifications auto-clear system options requires a page reload before taking effect
bugStatistics do not record home page hits
newAdded an import speed selector to reduce resource usage on slower servers when importing from sh404SEF
newImplemented auto-redirecting requests with an added or missing trailing slash compared to the proper URL in the SEF URLs list
newImplemented auto-redirecting requests to the proper letter case if different from what's in the SEF URLs list
newAllow sorting URLs by hits
chgAfter sh404SEF import has completed, we now enable back 4SEF
chgPage hits should be imported from sh404SEF
chgSome duplicates are not imported as duplicates
chgAdded an integration with wbAMP to handle AMP pages it generates
chgRemoved steps counter in sh404SEF import wizard, was not accurate
chgRemove dashboard message prompting to import data from sh404SEF after the import wizard has been ran
bugExtensions Process Mode is not imported from sh404SEF
chgDo not store update key on Joomla 4 when in development mode
chgDisplay an actual error message if sh404SEF configuration is not found, and do not overwrite default configuration.
chgSimplified configuration wizard, removed useless last step
bugsh404SEF importer should apply same pracessing to imported URLs as if creating them normally. Some imported URLs may be stored multiple times if not.
bugPHP warning in sh404SEF importer causes import to fail for some URLs (with non-default language)
newAdded action hook to allow 3rd-parties to load their custom plugins
chgOnly attach rules to router when application is site
chgRestored For testing only message in admin
bugMultiple changes for multilingual sites support
bugLanguage to use when none present in non-sef should be current page language, not site default language
bugReplacements list cannot be used to remove characters, contrary to sh404SEF
bugHome pages links are not recognized on multilingual websites
bugPossible PHP warning missing language tag on fresh installs