¿Cómo eliminar el 'index.php' de las URL?

Respuestas:

17

Puede hacerlo habilitando las URL de SEF y especialmente el parámetro "Usar reescritura de URL" en la configuración global de Joomla.

Tenga en cuenta que esto generará un error interno del servidor si no creó el .htaccessarchivo antes de habilitar la opción.

Hay una página de documentación que explica qué pasos son necesarios para obtener esas buenas URL. Echa un vistazo aquí: http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

Básicamente, debe cambiar el nombre del htaccess.txtarchivo que se encuentra en su directorio raíz de Joomla. Dependiendo de su proveedor de alojamiento, se necesitan pasos adicionales.

Bakual
fuente
OK, lo intentaré. Es un poco extraño que Joomla no genere ese código en sí mismo ya que ahora lo pienso. Creo que probé esa opción y, de hecho, se bloqueó.
Connersz
1
Esa es exactamente la razón por la cual Joomla no genera el código en sí. Depende mucho del host y no queremos romper completamente su sitio habilitando una función :)
Bakual
4

Puede agregar este código al principio del index.php de Joomla:

if(strcmp($_SERVER['REQUEST_URI'], '/index.php') == 0 && $_SERVER['QUERY_STRING'] == ''){
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: /');
    exit;
}

Sin embargo, tenga cuidado, si adopta este enfoque, deberá rehacerlo cuando realice la actualización.

Cambio de contexto
fuente
Te sugiero que puedas hacer esto como un hack opcional si la redirección y ReWrite no funcionan en htaccess. Entonces, una caída válida
tristanbailey
convenido. así es como llegamos a esta solución. No pudimos lograr que la solución htaccess funcione correctamente en todo el sitio
ContextSwitch,
4
  1. Cambió htaccess.txt a .htaccess
  2. Sitio> Configuración global: Usar reescritura de URL (Elija Sí)
  3. Configuración de SEO URL amigables para motores de búsqueda (Elija Sí)
Vick-Nguyen
fuente
2

Aquí hay un método general si su sitio falla al usar .htaccess:

  • Debe comentar una o ambas de estas líneas:

Opciones + FollowSymLinks

y / o

RewriteBase /

¡Esto debería funcionar bien! Nota: haces comentarios dando un hashtag para una línea "#"

tgyozo
fuente
1

Si está utilizando el servidor web nginx , puede usar el siguiente fragmento de código para el nginx.confarchivo de configuración donde está su Joomla! el sitio se sirve desde (básicamente, solo agregue la condición if después de las líneas existentes donde index index.phpaparece la directiva).

#/programming//a/38165768/remove-index-php-from-joomla-urls-with-nginx
index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") {    return  301 /$1$2;  }

Más detalles en /programming/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768 .

cnst
fuente