Difference between revisions of "Common problems when enabling Search Engine Friendly (SEF) URLs"

From Joomla! Documentation

m (Added category)
m (Add warning about $live_site)
 
(16 intermediate revisions by 11 users not shown)
Line 1: Line 1:
Usually this has something to do with your host's settings. One solution that commonly works is to enter a value for the $live_site variable in the configuration.php file found in the root directory of your Joomla site files. The value of the variable must be manually edited.
+
<noinclude><languages /></noinclude>
  
Typically, it would look like:
+
<translate><!--T:1-->
<pre>
+
Enabling Search Engine Friendly (SEF) URLs can cause problems if your website hosting is not properly configured to support the re-writing of URLs. There are many combinations of server technologies and operating systems, so it is not possible to give definitive answers to every problem with SEF URLs, however some of the more common problems are listed below.</translate>
var $live_site = 'http://example.com';
+
 
</pre>
+
<translate>==Is Your Server Running Apache?== <!--T:2--></translate>
But, if you access your Web site in a folder, it would be like this:
+
 
<pre>
+
<translate><!--T:3-->
var $live_site = 'http://example.com/joomla';
+
When you enable SEF URLS in Joomla! there is an option to re-write the URLs without ''/index.php/'' which requires ''mod_rewrite'' (or the IIS equivalent). If your server is not running Apache, or does not have the ability to rewrite URLs in this way, you will come across error messages with this option enabled. Try setting this option to ''no'' and see if this method of re-writing works for you.</translate>
</pre>
+
 
* See [http://help.joomla.org/ghop/feb2008/task110/GHOPC_J110_SEFrevised-1.odt Joomla! v 1.5 SEF URLs] [http://www.scribd.com/doc/2300167/Joomla-v-15-Configure-and-troubleshoot-SEF-URLs Scribd] by [[GHOP students/Benjamin Hättasch|Benjamin Hättasch]] which contains step-by-step instructions for installing and trouble-shooting your SEF URLs.
+
<translate><!--T:4-->
 +
Also make sure that you have a ''Directory'' section in your Apache config file that allows ''.htaccess'' overrides, otherwise the ''.htaccess'' file in your Joomla! root directory '''will be ignored'''. The directive needed is:</translate>
 +
 
 +
  AllowOverride all
 +
 
 +
<translate>==Is Your Server Running IIS?== <!--T:5--></translate>
 +
 
 +
<translate><!--T:6-->
 +
If you are using IIS check out these links which may be useful:</translate>
 +
<translate><!--T:17-->
 +
* [[IIS]]
 +
* [[IIS6 and SEF URLs using Joomla 1.5x]]
 +
* [[IIS7 and SEF URLs using Joomla 1.5x]]</translate>
 +
 
 +
<translate>==Did You Clear Your Cache?== <!--T:7--></translate>
 +
 
 +
<translate><!--T:8-->
 +
When you make any changes to SEF settings make sure that you clear your cache. If you are caching URLS (for example, using a third-party SEF extension), make sure that you change any settings there, and purge cached URLs.</translate>
 +
 
 +
{{note|<translate>
 +
<!--T:55-->
 +
'''Note!''' The following information relates to old, outdated and unsupported versions of Joomla! and used entirely at your own risk!</translate>|type=serious}}
 +
 
 +
<translate>==Have You Moved Domains?== <!--T:9--></translate>
 +
 
 +
<translate><!--T:10-->
 +
Sometimes if you have changed domains (for example, from a localhost or test environment to the live domain), you will need to edit the value for the ''$live_site'' variable in the ''configuration.php'' file found in the root directory of your Joomla site files. The value of the variable must be manually edited, it cannot be accessed via the Global Configuration screens.  See [https://forum.joomla.org/viewtopic.php?f=811&t=998357 Leave $live_site=<nowiki>''</nowiki> in configuration.php] for more information.</translate>
 +
 
 +
<translate><!--T:11-->
 +
Typically, it would look like:</translate>
 +
<syntaxhighlight lang="php">
 +
var $live_site = 'https://example.com';
 +
</syntaxhighlight>
 +
 
 +
<translate><!--T:12-->
 +
Or, if you access your website in a sub-folder called ''joomla'', it would be like this:</translate>
 +
<syntaxhighlight lang="php">
 +
var $live_site = 'https://example.com/joomla';
 +
</syntaxhighlight>
 +
 
 +
<translate><!--T:13-->
 +
When you move domains, this value may need updating to reflect your new domain name:</translate>
 +
<syntaxhighlight lang="php">
 +
var $live_site = 'https://mynewdomain.com';
 +
</syntaxhighlight>
 +
 
 +
<translate><!--T:14-->
 +
Often there is no need to specify this variable at all. Simply leave it blank:</translate>
 +
<syntaxhighlight lang="php">
 +
var $live_site = '';
 +
</syntaxhighlight>
 +
 
 +
<noinclude>
 +
<translate><!--T:16-->
 
[[Category:FAQ]]
 
[[Category:FAQ]]
 
[[Category:Administration FAQ]]
 
[[Category:Administration FAQ]]
 
[[Category:Getting Started FAQ]]
 
[[Category:Getting Started FAQ]]
[[Category:Version 1.5 FAQ]]
+
[[Category:Search Engine Friendly URLs]]
[[Category:Search Engine Optimization]]
+
</translate>
 +
</noinclude>

Latest revision as of 17:28, 19 May 2023

Other languages:
English • ‎français • ‎português do Brasil

Enabling Search Engine Friendly (SEF) URLs can cause problems if your website hosting is not properly configured to support the re-writing of URLs. There are many combinations of server technologies and operating systems, so it is not possible to give definitive answers to every problem with SEF URLs, however some of the more common problems are listed below.

Is Your Server Running Apache?[edit]

When you enable SEF URLS in Joomla! there is an option to re-write the URLs without /index.php/ which requires mod_rewrite (or the IIS equivalent). If your server is not running Apache, or does not have the ability to rewrite URLs in this way, you will come across error messages with this option enabled. Try setting this option to no and see if this method of re-writing works for you.

Also make sure that you have a Directory section in your Apache config file that allows .htaccess overrides, otherwise the .htaccess file in your Joomla! root directory will be ignored. The directive needed is:

 AllowOverride all

Is Your Server Running IIS?[edit]

If you are using IIS check out these links which may be useful:

Did You Clear Your Cache?[edit]

When you make any changes to SEF settings make sure that you clear your cache. If you are caching URLS (for example, using a third-party SEF extension), make sure that you change any settings there, and purge cached URLs.

Note! The following information relates to old, outdated and unsupported versions of Joomla! and used entirely at your own risk!

Have You Moved Domains?[edit]

Sometimes if you have changed domains (for example, from a localhost or test environment to the live domain), you will need to edit the value for the $live_site variable in the configuration.php file found in the root directory of your Joomla site files. The value of the variable must be manually edited, it cannot be accessed via the Global Configuration screens. See Leave $live_site='' in configuration.php for more information.

Typically, it would look like:

var $live_site = 'https://example.com';

Or, if you access your website in a sub-folder called joomla, it would be like this:

var $live_site = 'https://example.com/joomla';

When you move domains, this value may need updating to reflect your new domain name:

var $live_site = 'https://mynewdomain.com';

Often there is no need to specify this variable at all. Simply leave it blank:

var $live_site = '';