version 2.2.0
compatible with Joomla 1.0.x
by ARTIO s.r.o.
last updated on 3rd October 2007
ARTIO JoomSEF is a Joomla! component that generates and allows creation of Search Engine Friendly (SEF) URLs for Apache and IIS, returns proper 404 status code for missing content, provides logging of 404 errors, and creation of special "shortcut" URLs that allow the user to redirection to the new URL.
Starting with version 1.3.0 JoomSEF also allows control of specific meta tags, such as description or keywords for each generated URL. JoomSEF comes with SEF support for most popular Joomla! components. Some of those are delivered free as part of the JoomSEF instllation package and some are also available under commerial licence. If you are missing a support for your favourite component, ARTIO may develop it on request.
This documents describes how to install and setup ARTIO JoomSEF Joomla! component. You can view this documentation again by selecting the "ARTIO JoomSEF Documentation" button from the ARTIO JoomSEF Control Panel.
This software is distributed under following licensing conditions. By installing and using this software, you agree to bind to the licence conditions.
You can view installation instructions below by clicking the appropriate arrow.
If your .htaccess file was set as writable the install may have updated it already and you shouldn't have to worry about it.
If your site is in a subdirectory be sure to change the RewriteBase line accordingly. ex/ RewriteBase /joomla
## # @version $Id: htaccess.txt 2368 2006-02-14 17:40:02Z stingrey $ # @package Joomla # @copyright Copyright (C) 2005 Open Source Matters. All rights reserved. # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL # Joomla! is Free Software ## ##################################################### # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE # # The line just below this section: 'Options FollowSymLinks' may cause problems # with some server configurations. It is required for use of mod_rewrite, but may already # be set by your server administrator in a way that dissallows changing it in # your .htaccess file. If using it causes your server to error out, comment it out (add # to # beginning of line), reload your site in your browser and test your sef url's. If they work, # it has been set by your server administrator and you do not need it set here. # # Only use one of the two SEF sections that follow. Lines that can be uncommented # (and thus used) have only one #. Lines with two #'s should not be uncommented # In the section that you don't use, all lines should start with # # # For Standard SEF, use the standard SEF section. You can comment out # all of the RewriteCond lines and reduce your server's load if you # don't have directories in your root named 'component' or 'content' # # If you are using a 3rd Party SEF or the Core SEF solution # uncomment all of the lines in the '3rd Party or Core SEF' section # ##################################################### ##### SOLVING PROBLEMS WITH COMPONENT URL's that don't work ##### # SPECIAL NOTE FOR SMF USERS WHEN SMF IS INTEGRATED AND BRIDGED # OR ANY SITUATION WHERE A COMPONENT's URL's AREN't WORKING # # In both the 'Standard SEF', and '3rd Party or Core SEF' sections the line: # RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes## # May need to be uncommented. If you are running your Joomla! from # a subdirectory the name of the subdirectory will need to be inserted into this # line. For example, if your Joomla! is in a subdirectory called '/test/', # change this: # RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes## # to this: # RewriteCond %{REQUEST_URI} ^(/test/component/option,com) [NC,OR] ##optional - see notes## # ##################################################### ## Can be commented out if causes errors, see notes above. Options FollowSymLinks # # mod_rewrite in use RewriteEngine On # Uncomment following line if your webserver's URL # is not directly related to physical file paths. # Update Your Joomla! Directory (just / for root) # RewriteBase / ########## Begin Standard SEF Section ## ALL (RewriteCond) lines in this section are only required if you actually ## have directories named 'content' or 'component' on your server ## If you do not have directories with these names, comment them out. # #RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes## #RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] #RewriteRule ^(content/|component/) index.php # ########## End Standard SEF Section ########## Begin 3rd Party or Core SEF Section # #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes## RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php # ########## End 3rd Party or Core SEF Section
Since JoomSEF 1.3.2, support for IIS servers has been retested and updated.
JoomSEF has been succesully tested on IIS5 and IIS6. As the installation process is rather complex, we provide just the basic steps and hints here. If you have problems setting this up, please contact our support team (please note that the support is a paid service).
########## Begin 3rd Party or Core SEF Section # RewriteCond %{URL} ^(/component/option,com) [NC,OR] ##optional - see notes## RewriteCond %{URL} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule /joomla/demo/(.*) /joomla/demo/index.php [L,U]
Using the Internet Services Manager, right-click the directory in which Joomla! is installed. Select properties >> Custom Error set the 404 to URL:/joomla/index.php set the 405 to URL:/joomla/index.php
## # @version $Id: htaccess.txt 2368 2006-02-14 17:40:02Z stingrey $ # @package Joomla # @copyright Copyright (C) 2005 Open Source Matters. All rights reserved. # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL # Joomla! is Free Software ## ##################################################### # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE # # The line just below this section: 'Options FollowSymLinks' may cause problems # with some server configurations. It is required for use of mod_rewrite, but may already # be set by your server administrator in a way that dissallows changing it in # your .htaccess file. If using it causes your server to error out, comment it out (add # to # beginning of line), reload your site in your browser and test your sef url's. If they work, # it has been set by your server administrator and you do not need it set here. # # Only use one of the two SEF sections that follow. Lines that can be uncommented # (and thus used) have only one #. Lines with two #'s should not be uncommented # In the section that you don't use, all lines should start with # # # For Standard SEF, use the standard SEF section. You can comment out # all of the RewriteCond lines and reduce your server's load if you # don't have directories in your root named 'component' or 'content' # # If you are using a 3rd Party SEF or the Core SEF solution # uncomment all of the lines in the '3rd Party or Core SEF' section # ##################################################### ##### SOLVING PROBLEMS WITH COMPONENT URL's that don't work ##### # SPECIAL NOTE FOR SMF USERS WHEN SMF IS INTEGRATED AND BRIDGED # OR ANY SITUATION WHERE A COMPONENT's URL's AREN't WORKING # # In both the 'Standard SEF', and '3rd Party or Core SEF' sections the line: # RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes## # May need to be uncommented. If you are running your Joomla! from # a subdirectory the name of the subdirectory will need to be inserted into this # line. For example, if your Joomla! is in a subdirectory called '/test/', # change this: # RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes## # to this: # RewriteCond %{REQUEST_URI} ^(/test/component/option,com) [NC,OR] ##optional - see notes## # ##################################################### ## Can be commented out if causes errors, see notes above. Options FollowSymLinks # # mod_rewrite in use RewriteEngine On # Uncomment following line if your webserver's URL # is not directly related to physical file paths. # Update Your Joomla! Directory (just / for root) # RewriteBase / ########## Begin Standard SEF Section ## ALL (RewriteCond) lines in this section are only required if you actually ## have directories named 'content' or 'component' on your server ## If you do not have directories with these names, comment them out. # RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes## RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] RewriteRule ^(content/|component/) index.php # ########## End Standard SEF Section ########## Begin 3rd Party or Core SEF Section # #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes## #RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] #RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d #RewriteRule (.*) index.php # ########## End 3rd Party or Core SEF Section
Make sure that:
If your web site uses non-lating languages (such as greek, hebrew, etc.), make sure to configure the character conversion map correctly in JoomSEF Configuration / Non-ascii character replacements for all characters your language is using.
The format you need to use is oldChar1|newChar1,oldChar2|newChar2,... .
Example: α|a,β|b,γ|c,...
Starting with version 1.3.0, JoomSEF provides automatic updates capabilities.
Thanks to this feature, it is no longer needed to uninstall and install the component each time you want to upgrade to higher version. After activating the automatic upgrade tool in the JoomSEF control panel, the component will check, whether newer version is available on-line and if yes, it will automatically download it and install rewriting your current version.
Using the ARTIO JoomSEF configuration is fairly straight forward. For more information on each item hover your mouse over the blue (i) images when you are in the configuration screen.
When you save the configuration it will remove all your URL's from the database. If you have a high traffic site it may be wise to put it offline before saving the ARTIO JoomSEF config or purging the database and go and browse your site starting at the main page. This will create the URL's properly for you and prevent numbers from being added to the ends of URL's people were browsing that changed.
You may want to purge the 404 log before creating fresh urls.
To achieve maximum performance, you should consider several things.
Always have the lates JoomSEF version installed as we continue optimizations with every release.
Enable Joomla! caching.
Use JoomSEF Configuration to turn SEF off for those components you do not need it or which generate too many unoptimized links. Typically when you note links like 45.html, 46.html, ..., something is probably wrong.
If certain component is using pagination, sorting and similar parameters an advanced configuration option "Append non-SEF variables to URL" may significantly reduce a number of SEF links generated and thus also your DB load. However, please note that the excluded variables will be reappened to your URL in standard form as &varname=value.
JoomSEF will always be a DB-driven SEO component. It will produce very nice and highly editable URLs for you, but for the cost of higher load for your DB. When configured properly and cached, the load increase should not be significant, but especially with big and frequently visited sites, pay a special attention to configuration and installed modules and plan your SEO carefully.
If you are facing duplicate content items links e.g. http://yoursite.you/article.html, http://yoursite.you/article-2.html, etc. that lead to the same content, this is most probably caused by so called "Itemid" variable (although there may be other reasons also).
The Itemid is internal Joomla! variable used to identify the source of a URL link. E.g. main menu or sub menu item that your visitor used to get to a certain content. According to this variable, different Joomla! configurations are applied - e.g. what template will be used or what modules will be visible, etc.
Since JoomSEF 1.4.0, several new configuration options are provided in "Advanced configuration" section. The option "Exclude source info" may be used to exclude the Itemid variable from the URL and thus eliminate the duplicates caused by it. However, ignoring it completely may lead to unwanted Joomla! functionality, like not switching the templates as desired or so. Whether this will be a problem for you or not depends mainly on the way how your site is designed and how complicated it is. If you need to fix this, the Itemid should be "reappended" to the SEF URL as an extra part using the option "Reappend source". Then the resulting URL will look http://yoursite.you/article.html&Itemid=xy.
Since JoomSEF 2.0.0 there is a possibility to set your own Itemid for each extension that will always be used with it - thus even when "Reappend source" is set to Yes, that extension won't have the ?Itemid=xy appended. You can find this option in extension parameters. If you leave the "Override Itemid" field blank, the default Itemid will be used, but won't be appended as ?Itemid=xy in URL. Thus you can achieve that the ?Itemid=xy will be added only to those extensions that need it (mostly content). But be careful, setting Itemid to some random number can ruin your menu functionality!
Another new option is "Ignore multiple sources". If selected, only one URL will be created for each page using the first Itemid. Every other link varying in Itemid only will be ignored and the already created one will be used instead. But again - this can ruin your menu functionality! This option has no effect on extensions with custom Itemid set.
JoomSEF 2.0.0 introduces own cache functionality to decrease the amount of queries to your database. You can find this option in Advanced Configuration section.
When caching is enabled, the most often used links will be kept in memory and will not require querying database every time. You can set the cache size (how many links can be stored in memory) and minimum hit count - only links with hit count greater than specified value will be stored in cache. Be careful about the cache size option - the more links in cache means less queries to database, but on the other hand bigger memory consumption.
JoomSEF 2.0.0 also comes with the new Patch System. This will also decrease amount of queries made to database because everyone can use only those patches he needs, so no more "SELECT DATABASE()" queries if you use only one database.
A patch is basicaly a mambot specificaly designed to work with JoomSEF only. This means that you can use default Joomla! Mambot installer to manage these patches. Also every patch you install must be published in Site Mambots section in order to work.
There are several ways you can let JoomSEF build URLs on your multi-lingual site. They are displayed in JoomFish Related Configuration section of JoomSEF configuraton when JoomFish is installed.
Language integration
Always use language
With this option active the language code will always be added to resulting URL.
This may decrease duplicate links count as there won't be two links (with and
without language code) pointing to the same page.
Translate URLs
Activate to have your URLs translated using JoomFish - this will improve the
readability of your URLs for people prefering other languages.
Domain Configuration
Here is the place to set custom domain for each language if you have Use
different domains selected.
In the Component Configuration section of JoomSEF configuration you can set some options for each component individually.
Handling
Controls the way how links are processed.
Custom title
Lets you set your own extension title to use in URL instead of default menu
title. Leave blank for default one. If you use JoomFish you can also translate
these custom titles.
You can modify URL's to your liking. Go into the ARTIO JoomSEF Control Panel and click ' View/Edit SEF Urls'. Select the URL you wish to modify. If you click the check box labeled 'Save as Custom Redirect' it will place this URL into the 'Custom Redirect' area which you can navigate to from the ARTIO JoomSEF Control Panel. When you click 'View/Edit Custom Redirects' you will see your URL in here now instead. These urls will not be removed when you save the config. You can modify these and save them as you wish.
This is particularly useful if you are updating from an old site because any URL's that are no longer availble will be logged. You can view these URL's by clicking 'View/Edit 404 Logs' in the ARTIO JoomSEF Control Panel. You can redirect visitors to the new page by selecting the URL you wish to modify and entering the new url. Note: The ability to enter non-Joomla! URL's into this area is coming soon! This will allow you to easily transfer a non-Joomla! site to Joomla using ARTIO JoomSEF and any of your old URL's will be redirected to the new page within Joomla!.
To organize and adjust your site metadata (such as title, meta desc, meta keywords, etc.] from one place, you may use features offered by JoomSEF Metabot. Metabot is installed as a standard Joomla! mambot and takes care about composition of your page title and meta data in the page head section.
Metabot will load the metadata you have defined for a certain SEF URL using the JoomSEF URL editor and will place them into the head section of your current Joomla! page.
Hint: To define title and/or meta tags for your homepage (that has not really an URL generated by SEF, but composes just from your site base URL), create a new entry in the URL list where the SEF URL will stay blank and the original URL will say just index.php.
For metabot, to work correctly, it must be used always with JoomSEF component and it has to be in published state.
It is recommended to backup your database before doing this.
You can also import and export URL's from the Custom Redirect area. To do this click the 'Import/Export Custom URLS' link above the table of URL's. To backup your URL's click the 'Backup Custom URLS' button and you will be presented with a file named 'ARTIO JoomSEF_custom_urls.sql' to download.
If you want to import your urls browse to the file and click the 'Import Custom URLS' button.
The support for Joomla! core components, such as banners, content, contacts, news, newsfeeds, weblinks, etc. is already integrated in the JoomSEF component. Optimization of URLs for these components requires no further efforts.
The situation is slightly different for 3rd party components. There exists many 3rd party components and modules for Joomla!, which usually differ significantly in complexity and structure. This means that for some of those (usually the simple ones), the SEO will worctionality, insufficient SEO, or generation of duplicate URLs. These can be either skipped in JoomSEF Control Panel, so no SEF URLs will be generated for them, or will require a special "extensions".k using the the default JoomSEF component handler. The others (usually more complex ones) may cause problems when used with the default handler. Such problems may include errors, loss of fun
Extensions are special pieces of code for JoomSEF, written with particular 3rd party component in mind (e.g. VirtueMart, JoomlaBoard, ...}. Such extension can be either part of the component/module self (provided by component/module author), may come as part of JoomSEF installation package or be provided by 3rd parties. ARTIO offeres most of such extensions available for free as part of the JoomSEF distribution package. However, some of the extensions are provided also under commercial licence. Bellow, you may find list of official extenstions available for JoomSEF.
We hope this list will be spread fast. Our priority is to add support for the most popular extensions first. If you haven't found your favourite component/module here and it does not work with JoomSEF correctly, you may contact us and we may develop a needed extension for you.
To install extra SEF extension for a component, use installer accessible from the JoomSEF Control Panel.
Since JoomSEF 2.0.0 each extension can have its own parameters affecting resulting URLs - you can access them through main JoomSEF's administration page using the Edit button in the toolbar or simply clicking on extension's name.
ARTIO JoomSEF is a free software. However the development costs are same as for any other software. If you are satistifed with this software and you would like us to implement new features, fix the bugs promptly and publish new releases regularily, you can send us a donation and thus support the JoomSEF further development.
You may do so via PayPal service using your credit card or transfer, or you can send us the payment directly.
Bank account information:
Recieving Bank: Ceskoslovenska obchodni banka (CSOB)
Address: Hollarova 5, Ostrava, Czech Republic
Account No.: 199371035, Bank code: 0300
SWIFT: CEKOCZPP
IBAN: CZ1303000000000199371035
If you need more help with the ARTIO JoomSEF component, visit our webpages at http://www.artio.cz and check our FAQs & support forums.
JoomSEF may add user-invisible links pointing to websites of JoomSEF authors (ARTIO s.r.o.) and/or to its sponsors. Such links appear in page footers or meta tag fields of pages, where it is used. This has no direct influence to functionality of your site.
Similarily to Joomla! software, these may be removed if you wish to do so. However, by keeping them, you help us develop the software further and increase the number of users.
You may also purchase a commercial version of JoomSEF that does not contain these advertisement links. This component is available from on-line store at http://www.artio.cz/en/e-shop.
ARTIO s.r.o.
Mrstikova 840/6
Ostrava - Marianske Hory
70900 Czech Republic
http://www.artio.net
info@artio.net
Michal Unzeitig, team leader
David Jozefov, developer
Petr Vlasak, developer