Support site You will find up to date information and support at extensions.Siliana.com. Please also check our forum at extensions.Siliana.com/forums/. Please read also our Frequently Asked Question, probably the best place to start with if something does not work as you like
Summary Allows Search Engine Friendly URLs for Apache (and possibly but unsupported, IIS). You can also setup your own, custom URLs if you don't like those automatically built. Builds page title and meta tags, and insert them into page. Title and tags can be manually set as well. Provides security functions, by checking the content of URL and visitor IP against various security check lists, plus an anti-flooding system. sh404SEF works well with Joomfish, and there are several plugins to build up URL for various components, including Virtuemart, Fireboard, Community Builder, Myblog, iJoomla Magazine and NewsPortal, Mosets Tree and Hot Property,.... If you use Joomfish, please take a look at the bottom of this document for a Joomfish fix to allow translation of content element Alias. If you use Virtuemart, please read the special note at the end of this document, where you will find a couple of fixes for Virtuemart 1.0.10 : one to work with Joomfish (comes from the Virtuemart forum), the other to allow smooth operation when using SSL mode (comes from NetshineSoftware). It has a caching system, to reduce database queries and enhance page loading time when using URL rewriting. sh404SEF can operate with or without mod_rewrite (that is with or without .htaccess file). Url are the same, except there is an added /index.php/ bit in them when not using .htaccess. This is now the default setting, as it is much easier to use. You may want to adjust your ErrorDocument as 404 errors will no longer be processed by Joomla when operating without a .htaccess file. The integrated tool to manage your META tags, shCustomTags is a module that will rewrite Title, Description, Keywords, Robots and Language meta tags to your liking, on any page of your site. It has a plugin system to accomodate any component, and a Virtuemart and a regular content plugin are provided to automatically generate these tags. Plus, you'll be able to manually set any tags you like on a page by page basis (a page is identified by its URL). Plus you'll be able to set content title within h1 tags, and remove Generator = Joomla tags, plus perform various text replacement operations on your page. There is no hack of Joomla, just a module. shCustomTags has been installed automatically with sh404SEF, but it not published initially. You must publish it and review instructions in its backend. Both sh404SEF and shCustomTags have been tested only using Joomla 1.012 and VirtueMart 1.0.10 (should work with previous version of Joomla - don't know about previous versions of VirtueMart). Simple tests ahve been done with Joomla 1.0.13, so sh404SEF should not cause any problem there. Many thanks to all previous contributors to 404SEF and 404SEFx Documentation IMPORTANT : if you plan to use mod_rewrite (.htaccess) rewriting : BEFORE making any attempt to activate this component and use its URL rewriting functions, your Joomla installation should already be compatible with URL rewriting. This is not required if you select no .htaccess rewrite mode in sh404SEF advanced parameters (but this mode may not always work as well, depending on your server settings).
Remember : if you are having difficulties with this, it is unlikely to be a joomla problem, but most likely something related to your server setup. For instance, many times, you will be faced with 404 errors or Internal server errors 500 display. This indicates that there is something in your .htacces file that is not compatible with your apache server setup.
If you face this kind of errors, I will suggest you contact your hosting company for assistance. If your .htaccess is not compatible with your apache server, or hosting company, there is no point in trying to use sh404SEF - or any other similar component like ARTIO Joomsef, OpenSEF or Advanced SEF - as they will simply not work. You will have first to fix your installation, paying particular attention to the existence and the content of your .htaccess file. However, one of the first thing to control : verify that mod_rewrite is loaded by PHP. To do this, in Joomla backend, go to System menu, then System information. On the PHP tab, just run a search for the word 'rewrite'. If you don't find anything, then mod_rewrite is not loaded and nothing will work. You need to change your Apache web server httpd.conf file, or contact your system administrator or shared host company to do this for you. More advice on .htaccess, a very tricky issue on many occasions, can be found on line at . In a few words : - Joomla standard .htaccess is very FINE. It will work with most hosting companies. You should use it unmodified, at least to start with. Just remember it comes named as htaccess.txt, so you need to rename it to .htaccess before anything.
- Joomla standard .htaccess comes configured for Joomla standard SEF system (which makes sense!). To use it with sh404SEF (or OpenSEF, Artio JoomSEF, SEF Advance), you must open it up in an editor, and make the few changes explained in it:
If you scroll down towards the end of the file, you'll see two sections, one marked Begin - Joomla! core SEF Section, and just next to it another marked : ########## Begin - 3rd Party SEF Section Now the tricky part : you should type # at the beginning of each line of the first section, and remove those # in front of those in the second section, so that the whole things looks like :
########## Begin - Joomla! core SEF Section ############# Use this section if using ONLY Joomla! core SEF ## 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 - Joomla! core SEF Section ########## Begin - 3rd Party SEF Section ############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc # 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 SEF Section Note : this is from the .htaccess that comes with Joomla 1.0.12. If you are using a more recent version of Joomla, in the 1.0.x series, use the latest version of the file instead of this one. - If you get 404 errors or Internal error 500, or similar, when clicking on a rewritten URL, then you should try adding another # at the beginning of this line (near the top of the file):
Options FollowSymLinks
so that it looks like:
#Options FollowSymLinks
- If that does not work, and if your Joomla site is in a sub-directory, you should look for the line that looks like:
#RewriteBase / and replace it with : RewriteBase /sub_directory_of_your_joomla_install - On some servers, even if your site is not in a sub-directory, you may want to try replacing
#RewriteBase / by RewriteBase / - One little thing more : try changing only one thing at a time, and check the result before moving to next step
-
Introduction Here are the main information bits required to use sh404SEF. You can view this documentation again by selecting the 'sh404SEF Documentation' button from the sh404SEF Control Panel. Please note that I cannot support IIS installation in any way. sh404SEF may well work on such machines, but it is not tested at all. -
Installation Instructions You can view installation instructions below by clicking the appropriate arrow. - document.writeln('
'); Installation -
- Upload the zip file to Joomla using the component installer in the usual way.
- For apache, the .htaccess file that comes with Joomla is FINE!!
There is just one line I would suggest you add to it: # Rule for duplicate content removal : www.domain.com vs domain.com RewriteCond %{HTTP_HOST} ^mydomain\.com [NC] RewriteRule (.*) http://www.mydomain.com/$1 [R=301,L,NC] What this will do is rewrite all page requests starting with mydomain.com to www.mydomain.com. This way, you will avoid some duplicate contents issues (even though that is not really a problem nowadays, at least with Google), and also improve the way many editors, including JCE, will behave. You should replace mydomain\.com on the first line and www.mydomain.com by your own domain information of course. Also, you should place these 3 lines just after the RewriteBase line in Joomla standard .htaccess file. Lastly, you can also do it the other way around, that is rewrite www.mydomain.com to mydomain.com. To do this, simply use : # Rule for duplicate content removal : domain.com vs wwwdomain.com RewriteCond %{HTTP_HOST} ^www.mydomain\.com [NC] RewriteRule (.*) http://mydomain.com/$1 [R=301,L,NC]
- For IIS, see Configuring IIS..
- Ensure that SEF is enabled under Global Configuration in the Joomla backend.
- Edit the 404 SEF configuration, Change Enable to yes and save.
This is neccessary to ensure the default 404 document gets saved to the Joomla database.
- document.writeln('
'); Configuring IIS - IMPORTANT : The instructions below are provided as is, with no warranty. They are simply copied over from past version of 404SEFx, and I have absolutely no idea if they are correct or not. Any feed back on that matter is appreciated, and may passed over to other people using the support forum at extensions.Siliana.com/forums/. Please not that good results have been reported using the "no .htaccess (/index.php/)" operating mode of sh404SEF instead of trying to setup a rewriting engine in IIS. If you use this operating mode, you don"t need anything than just sh404SEF. However, again, IIS may have been configured in a way where even this mode cannot work, so please report to sh404SEF support forum, or to Joomla Forum for assistance in setting this up.
-
Install ActiveScript After installing PHP, you should download the ActiveScript DLL (php4activescript.dll) and place it in the main PHP folder (e.g. C:\php). After having all the files needed, you must register the DLL on your system. To achieve this, open a Command Prompt window (located in the Start Menu). Then go to your PHP directory by typing something like cd C:\php. To register the DLL just type regsvr32 php4activescript.dll
-
Install .NET framework 1.1 To the best of my limited knowledge of IIS, this is required for web.config to work, so install it
-
Create/Modify web.config NOTE: in the example below, Joomla/Mambo is installed in the virtual directory 'joomla'. Create C:\Inetpub\wwwroot\web.config and add the content below: <?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <compilation defaultLanguage="PHP4Script" debug="true" /> <customerrors mode="On" defaultRedirect="/joomla/index.php" /> </system.web> </configuration>
-
Configure the Custom Errors NOTE: in the example below, Joomla/Mambo is installed in the virtual directory Joomla Using the Internet Services Manager, right-click the directory in which Joomla is installed. Select properties >> Custom Error set the 404 to URL:/mambo/index.php set the 405 to URL:/mambo/index.php
- document.writeln('
'); Uninstall -
- Uninstall the component using the component unistaller in the usual way.
- For IIS, remove C:\Inetpub\wwwroot\web.config and
the Custom Errors you created with the Internet Services Manager
-
Useful Tips For Using sh404SEF -
Configuration Using sh404SEF configuration is fairly straightforward for most of it. 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 sh404SEF config or purging the database. After doing that, you should use an online tool to build automatically a sitemap. The side effect of doing this is that this software will go through all of your site, and therefore all of your links, so they will be all automatically placed in the cache, thus speeding access for your next visitors. The caching system of sh404SEF is transparent,and will be rebuild automatically whenever required. Using the cache will vastly speed up the page load time, by dramatically reducing the number of database queries. Beware that URL caching uses up a lot of memory though. Its size can be limited using the appropriate parameter, and it can also be turned off completely. I estimate that 10 000 URLs eats up around 2 Mb, but that is per visitor to your site. Well, 10 000 URLs, that's already a sizable site! If you have a multi-lingual site, you can turn on or off URL translation. Normally, URL elements will be translated into the user language. However, it sometimes better not to translate, such as when using non-latin characters based languages. On such occasions, default site language will always be used/p> You may want to purge the 404 log before creating fresh urls. -
Modifying URL's You can modify URL's to your liking. Go into sh404SEF 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 sh404SEF 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 sh404SEF Control Panel. You can redirect visitors to the new page by selecting the URL you wish to modify and entering the new url. -
Backing up your data You can import and export your URL to a text file, using the corresponding button on sh404SEF control panel. You can also import and export URL's from the Custom Redirect area. In this case, only the manually defined URL will stored in the export file. The import file is a simple text file, where URL are listed in rows. This is well suited to be imported into a spreadsheet software if some heavy text processing is to be done on redirections for instance If you want to import back your urls, go to the same screen, browse to the file and click the 'Import Custom URLS' button. Manually defined meta tags can be exported/imported in very much the same way. The export/import link is located at the top of the Meta Tags screen, accessed from the main control panel Joomfish Special note for Joomfish 1.7 users : it is usually more handy to use content elements Alias in URL, instead of Title. However, Aliase are not translated by Joomfish, as per default settings. To have alias translated as well : Locate and open administrator/components/com_joomfish/contentelements/content.xml Find the line that looks like : <field type="text" name="title_alias" translate="0">Title Alias</field> and change it to <field type="text" name="title_alias" translate="1">Title Alias</field> Virtuemart Special note for Virtuemart users: This component has only been tested with Virtuemart 1.0.10 (as of date of this release). There is a bug in VM 1.0.10 with respect to Joomfishsee topic #26943 on VirtueMart forum. File : /components/com_virtuemart/virtuemart_parser.php line 40: insert code, so that result is as follow :
$option = mosGetParam( $_REQUEST, 'option' ); // shumisha fix for Joomfish, as per post on forum topic = 26943.0 global $mosConfig_lang; $jFishLang = $mosConfig_lang; // end of fix if( !defined( '_VM_PARSER_LOADED' )) { line 60 : insert code, so that result is as follow :
// the configuration file for the Shop require_once( $mosConfig_absolute_path. "/administrator/components/com_virtuemart/virtuemart.cfg.php" ); // fix for Joomfish, as per post on forum topic = 26943.0 $mosConfig_lang = $jFishLang; // end of fix // The abstract language class require_once( CLASSPATH."language.class.php" );
Joomla hack to allow SSL operation with Virtuemart (and others as well) Find and open file : /includes/joomla.php Locate the text : function sessionCookieName(). Replace the next lines to make it as follows: function sessionCookieName() { global $mainframe; //return md5( 'site' . $mainframe->getCfg( 'live_site' ) ); // shumisha : found at http://www.netshinesoftware.com/security/using-an-ssl-certificate-with-your-joomla-website.html return md5( 'site' . str_replace('http://', '', str_replace('https://', '', $mainframe->getCfg( 'live_site' ))) ); |