Here are some basic 'rules' when using the
SobiSEF plugin.
These 'rules' have been determined by trial and error and are not 'official' SOBI2 documentation.
Solving SobiSEF plugin Problems(1) The
first step in 'debugging' any SobiSEF problem is to;
(a) disable ALL caching (Joomla! and SOBI2) until you have things working correctly
Joomla! Caching Joomla! Administrator->Global Configuration->System->Cache Settings->Cache = No
Joomla! Administrator->Extensions->Plugin Manager->System - Cache->Enabled = No
SOBI2 Caching Joomla! Administrator->Components->SOBI2->Configuration->General Configuration->Cache->Second Level Cache Enabled = No
Joomla! Administrator->Components->SOBI2->Configuration->General Configuration->Cache->Caching of Details View Enabled (not recommended) = No
Joomla! Administrator->Components->SOBI2->Configuration->General Configuration->Cache->Third Level Cache Enabled = No
(b) disable ALL
other Joomla! SEF Extensions (such as
sh404SEF,
ARTIO JoomSEF, etc)
(c) AND all Joomla! Extensions that may alter SOBI2 URL's (such as
Joom!fish),
(d) AND the
SobiSEF plugin (e) BUT keep
Joomla! native SEF enabled
Then check that your SOBI2 non-SEF links all work as expected.
After you have checked all your SOBI2 non-SEF links all work as expected, then you can enable the SobiSEF plugin,
(but not other Joomla! SEF Extensions until you have completed the steps below).
Note (i): It can be very difficult (if not impossible) to get other Joomla! SEF extensions, (such as sh404SEF)
to work with the SobiSEF plugin.
This is a problem caused by the Joomla! SEF extension, not SOBI2 or the SobiSEF plugin.
(refer to the discussions in
SobiSEF plugin and 3rd Party Joomla! SEF Extensions (AceSEF, sh404SEF, etc) for more details).
Note (ii): If you have Joomla! installed in a sub-directory/sub-folder, then Joomla! must be working correctly in that sub-directory/sub-folder for the SobiSEF plugin to function without problems.
Refer:
How to get your Joomla! in a sub-directory to work Hiding Joomla Subdirectory - GoDaddy Note (iii): Any time you make a configuration change that may effect SEF URL's,
(such as a change to SobiSEF plugin or Joomla! Menu Items linking to the SOBI2 Component)
it is necessary to purge the SobiSEF plugin tables.
Refer
Joomla Administrator->Components->SOBI 2->Plugins->SobiSEF->General Options->
Plugin is Active = Yes/No
Purge URL's after save=Yes (and remember to Save).
(2) Make sure that you have the latest version of the
SobiSEF plugin installed.
The plugin authors include bugfix's in the new versions for a reason.
Install the SobiSEF plugin using the SOBI2 Plugin Manager,
not the Joomla! Extensions Plugin Manager.
(3) Make sure that the version of the
SobiSEF plugin you have installed is compatible with the
Joomla! and the
SOBI2 versions you have installed.
For example;
SobiSEF plugin RC 1.6 requires SOBI2 RC 2.9.2.3 or later,
and
SOBI2 RC 2.9.2.3 requires Joomla! 1.5.6 or later
(4) Make sure that Joomla! native SEF is enabled
Refer Joomla Administrator->Global Configuration->Site->SEO Settings
set Search Engine Friendly URLs = Yes
set Use Apache mod_rewrite = Yes (Note the warning about renaming htaccess.txt to .htaccess)
setting Add suffix to URLs = Does not matter (but if you change it you will have to re-build the SobiSEF plugin URL tables)
Joomla! Menu Item Link Configuration(5)
ALL Joomla! Menu Items linking to the SOBI2 Component must be made using the
SOBI2 Extended Menu Items, (
Menu Item Type = SOBI2).
Joomla! Menu Items of Type=Alias are the exception to this rule,
but they must link to a Joomla! Menu Item that has been made using
SOBI2 Extended Menu Items.
Note: Joomla! Menu Items of Type=Url (External Link - Create a Menu Item that links to another Web site) can be linked to the SOBI2 Component using the rules in SOBI2
Special Links, but you may need to include the full URL (
http://MySite.com/....) and these links may not be processed by the SobiSEF plugin.
(6) You
MUST have at least one Joomla! Menu Item (created using SOBI2 Extended Menu Items)
linking to the SOBI2 Front Page [which is also the Root Category] (index.php?option=com_sobi2).
The SOBI2 Component requires a Joomla! Menu Item linked to the SOBI2 Frontpage,
regardless of whether the SobiSEF plugin is installed or not.
Note: It is not necessary to publish the Joomla! Menu Item linking to the SOBI2 Frontpage.. The SobiSEF plugin will build External/Internal URL pairs for (and/or based on) unpublished Joomla! Menu Items linked to the SOBI2 Component using SOBI2 Extended Menu Items.
[UPDATE] - The above Note appeared to be true when tested with SOBI2 RC 2.9.2.3 and SobiSEF plugin RC 1.6/1.7. But NOT true when tested with SOBI2 v2.9.3.2 and SobiSEF plugin RC 1.7. It is therefore recommended that the required Joomla! Menu Item link to the SOBI2 Frontpage be published.
Note: The reason a Joomla! Menu Item linking to the SOBi2 Frontpage is required is beyond the scope of this posting, but if you refer to
Joomla!/SOBI2/SobiSEF - SEF URL's and breadcrumb/pathway construction - Items (3) and (4), it may give you some indication why it is necessary create at least one Joomla! Menu Item linked to the SOBI2 Frontpage (root category).
(7) Joomla! Menu Items - Links and Aliases
for Joomla! Menu Items with Menu Item Type = SOBI2 (created using
SOBI2 Extended Menu Items)
(a) Each identical Menu Item Link to the SOBI2 component
MUST have identical Menu Item Aliases,
AND (b) Each different Menu Item Link to the SOBI2 component
MUST have a different Menu Item Alias.
(I believe Menu Item Titles are irrelevant, but have not had a chance to test this 100%)
(I believe it does NOT matter if those Joomla! Menu Items are published or not published, but have not had a chance to test this 100%)
An example for (7a) above;
The configuration;
Joomla! Menu Item Type = SOBI2
Joomla! Menu Item ID: xxx
Title = Directory
Alias = directory
Link = index.php?option=com_sobi2
and
Joomla! Menu Item Type = SOBI2
Joomla! Menu Item ID: yyy
Title = Main Directory
Alias = main-directory
Link = index.php?option=com_sobi2
Will cause SobiSEF plugin problems (two Menu Items with identical Links but not identical Aliases).
An example for (7b) above;
Joomla! Menu Item Type = SOBI2
Joomla! Menu Item ID: yyy
Title = Category
Alias = category
Link = index.php?option=com_sobi2&catid=3
and
Joomla! Menu Item Type = SOBI2
Joomla! Menu Item ID: zzz
Title = Category
Alias = category
Link = index.php?option=com_sobi2&catid=4
Will cause SobiSEF plugin problems (two Menu Items with different Links but not different Aliases).
Joomla! Menu Items of Type=Alias (refer
http://docs.joomla.org/Screen.menus.edit.15#Alias) that are linked to a Joomla! Menu Item of Type = SOBI2 may be an exception to rule (7) above.
Other links to SOBI2 Component content(8) Links to SOBI2 content (for example links in Joomla! articles) must be made in accordance with;
SOBI2 Special Task Links (refer
http://www.sigsiu.net/special_tasks_links.html) or
SOBI2 Special Links (refer
http://www.sigsiu.net/special_links.html) or
(9) Links to SOBI2 content in a SOBI2 Template must be made in accordance with the appropriate template command
(refer
http://www.sigsiu.net/template_commands.html#Linking_to_Details_View)
After configuration changes(10) If you have had problems with SobiSEF links, disable the plugin and purge all previously created URL's, before enabling the SobiSEF plugin.
After you have purged all previously created URL's, Active the plugin.
Refer
Joomla Administrator->Components->SOBI 2->Plugins->SobiSEF->General Options->
Plugin is Active = Yes/No
Purge URL's after save=Yes (and remember to Save).
(11) When testing your SobiSEF links, always start from your web site 'home page',
ie:
http://mysite.com/ Otherwise your Browser may be displaying HTML output with 'old' links in the current window,
and this may result in direction to an invalid URL.
(12) If your web site contains a lot of links, allow SobiSEF time to generate new SEF links.
The SobiSEF plugin can only create/rebuild SEF (External)/non-SEF(Internal) URL pairs when Joomla!
is building a 'page' that contains links/URLs to the SOBI2 Component. Joomla! 'calls' the SobiSEF plugin
when it is building a 'page' that contains links/URLs to the SOBI2 Component.
The 'speed' at which the SobiSEF plugin creates/rebuilds SEF (External)/non-SEF(Internal) URL pairs
is limited by the setting
Joomla! Administrator->Components->SOBI2->Plugins->SobiSEF->General Options->Queries Limit
The high the 'Queries Limit' the more SQL Queries and the 'quicker' the SobiSEF plugin creates new SEF (external) URL
You may have to 'refresh' a Joomla! 'page' containing links/URLs to the SOBI2 Component
in order for the SobiSEF plugin to be executed enough times for the required SEF URL's to be created/rebuilt.
You may have to navigate to SOBI2 Content for the SobiSEF plugin to create/rebuild SEF URL's for that content.
Note: Setting
Joomla! Administrator->Components->SOBI2->Plugins->SobiSEF->General Options->Queries Limit = unlimited
and disabling
Joomla! Administrator->Components->SOBI2->General Configuration->General->Show Alpha-Index = No
may speed up the SEF link creation/maintenance process, especially if you are trying to debug problems.
Note: If the SobiSEF plugin cannot resolve a SEF URL, (perhaps because it has not yet been created, or perhaps a configuration problem),
then by design, it redirects to the SOBI2 Frontpage rather than producing a '
404 page not found' error message.
Arguably, this is more 'web site visitor friendly' behavior than a '
404 page not found' error message.
Not sure why it makes a difference(13) SOBI2 Configuration Changes
OK, these are 'desperation' changes that can be made if all else fails.
I have never found the spare time to work through the SOBI2 Core and SobiSEF plugin code to discover exactly what the impact of the following settings are, BUT their values impact Joomla! Menu Item ID's and changing their values has been reported to solve SobiSEF problems.
Try changing (one at a time, and if that fails, in combination) the current values of;
SOBI2 Admin > Configuration > General Configuration > General > Force Unique Menu-Id
SOBI2 Admin > Configuration > Registry Editor > Section: [ url ] > force_right_itemid (default=1)
SOBI2 Admin > Configuration > Registry Editor > Section: [ url ] > on_bad_itemid ([ redirect | overwrite ] default=redirect )
I have not been able to establish a 'correct' values for these settings.
For example, some users have reported that changing
SOBI2 Admin > Configuration > General Configuration > General > Force Unique Menu-Id
from 'Yes' to 'No' has solved their SobiSEF problems, while other users have reported changing this setting from 'No' to 'Yes' has solved their SobiSEF problems.
Non-English language web sites(14) If your Web Site is using a non-English language,
You may need to check that your SobiSEF Replacement Character set is configured appropriately.
Refer
Joomla Administrator->Components->SOBI2->Plugins->SobiSEF->Replacements->Replace these Characters
However, it would appear that most 'modern' web browsers can use IRI's (
Internationalized Resource Identifier) as a replacement for URI's (
Uniform Resource Identifier) (URL's). While
URI's are limited to a subset of the
ASCII Character Set, IRI's may contain characters from the Universal Character Set (
Unicode/
ISO 10646), including Chinese or Japanese kanji, Korean, Cyrillic characters, and so forth.
In this case, it is no longer necessary to use SobiSEF Replacement characters to replace characters that are not included in the
ASCII printable/displayable character set.
The web page
http://en.wikipedia.org/wiki/Comparison_of_web_browsers#Protocol_support includes details of browser IDN (
Internationalized domain name) support. If a browser can support IDN, then I think it is safe to assume that it will support an IRI path.
You should also consider if you have configured Joomla!/MySQL with the appropriate UTF collation for your language.
A default Joomla! installation will configure a database collation of utf8_general_ci For your current database collation configuration, refer
Joomla! Administrator -> Help -> System Info -> System Info ->Database Collation
Another utf8_ database collation may be more appropriate for your language (see
http://www.collation-charts.org/mysql60/)
If you need to change your database collation, there are two Joomla! Extension that claim to be able to do this;
http://extensions.joomla.org/extensions/tools/database-tools/5184 http://extensions.joomla.org/extensions/hosting-a-servers/database-management/9886Conclusion(15) If you have links in your Joomla! installation that do not conform to the above, then it is possible for the SobiSEF plugin to have problems.
(16) After you have checked all your SobiSEF plugin URL's are functioning properly you can re-enable your
other Joomla! SEF Extensions.
But remember;
Note: It can be very difficult (if not impossible) to get other Joomla! SEF extensions, (such as sh404SEF)
to work with the SobiSEF plugin.
This is a problem caused by the Joomla! SEF extension, not SOBI2 or the SobiSEF plugin.
(refer to the discussions in
SobiSEF plugin and 3rd Party Joomla! SEF Extensions (AceSEF, sh404SEF, etc) for more details).
I hope this helps - Mark
PS: The following are primarily for my own benefit;
Related Documentationhttp://docs.joomla.org/Joomla_Routes_and_SEFhttp://docs.joomla.org/Routing