Aquí lo dejo para su corrección.
Disculpen mi falta de conocimiento en palabras técnicas.
SEF es sólo para Apache. Usa el mod_rewrite para dirigir al servidor al archive correcto aunque todo esté en PHP. Sólo hay 3 lineas en .htaccess para la administración del mod_rewrite.
Para poner el soporte SEF en ON:
1) Debes funcionar con Apache
2) Debes tener el mod_rewrite habilitado
3) Tu servidor debe permitir “override” en el .htaccess
4) Ajusta $mosConfig_sef= "1" en configuration.php
5) Renombra htaccess.txt a .htaccess
Notarás que las secciones/contenidos/artículos tienen URLs más bonitas como:
http://www.site.com/content/view/5/2/
y los components tienen URLs como esta:
http://www.site.com/component/option...tact/Itemid,3/
Localizando los problemas:
Si experiementas problemas con SEF, por favor asegurate de haber revisado estos tres pasos:
1) Debes correr bajo Apache. Para comprobar esto ve a administración> Sistema > Sistema Info. El tipo de servidor debe estar mostrado junto a Web Server. SEF no funcionará en ISS, así que no te molestes en intentarlo.
2) Debes tener el mod_rewrite habilitado. Para comprobar esto ve a administración > Sistema > Sistema Info. Haz clic en la lengueta PHP Info. Desplázate hacia abajo hasta encontar la columna Loaded Modules. mod_rewrite debería mostrarse aquí. Si no es así, habla con tu hosting para activar el mod_rewrite.
3) Tu servidor debe permitir “override” en el .htaccess. Para comprobar esto, borra todo de archivo .htaccess y escribe ahí un comando simple, por ejemplo:
Código:
Redirect /google.html
http://www.google.com
Ahora dirige tu buscador a
http://www.yoursite.com/google.html
Si se dirige a Google.com entonces va bien.
4) Ajusta $mosConfig_sef= "1" en configuration.php
También puedes activar SEF en Sitio > Configuración Global.
5) Renombra htaccess.txt a .htaccess
Esto lo puedes hacer con el programa FTP. Fíjate en el punto al comienzo! También fíjate que no puedes hacer esto en Windows, debes renombrarlo directamente en el servidor.
Información para desarrolladores de componentes:
Lo que tienen que hacer para habilitar SEF en sus CMTs (Componentes/Módulos/Templates):
Deben convertir todos los enlaces de los CMTs en enlaces SEF. Esto se hace con una función llamada sefRelToAbs().
Ejemplo:
Antes tenías un enlace o un formulario apuntando a:
index.php?option=com_contact&Itemid=$Itemid
Ahora solo haz esto:
echo sefRelToAbs("index.php?option=com_contact&Itemid=$ Itemid");
Esto transformará está URL relativa en un enlace como:
http://www.domain.com/component/opti...tact/Itemid,3/
Ahora mod_rewrite dirigirá a Apache al index.php y sef.php hará la transformación mágica.
Esta function solamente devolverá el mismo enlace si SEF está deshabilitado, así que es seguro codificar tus CMTs con ello de aquí en adelante
Fíjate que SEF está predeterminado en OFF y no es necesario ningún cambio si estás usando CMS muy antiguo, sin SEF.
Please make sure that you have right settings before posting that it doesn't work. I will be deleting all comments from people that haven't checked above 5 steps. So: check your php-info and make sure you run Apache and mod_rewrite module is loaded. Make sure you renamed htaccess.txt to .htaccess and that you turned SEF on in configuration.php.