it-swarm-es.tech

Cómo eliminar index.php de la url en un sitio multilenguaje

Estoy buscando eliminar index.php de las URL. Hice lo que dicen muchos sitios web. Pero todavía recibo el error 404. Creo que ese error no se mostraría si no utilizara el sitio web multilenguaje. Estoy usando Joomla 3.3.3. Todos los ejemplos son para sitios de un solo idioma. Pero mi sitio tiene al menos dos idiomas.

La dirección de mi página de inicio es como

http://www.example.com/index.php/en/

Cuando habilito "usar mod_rewrite" y cambio htaccess.txt a .htaccess, sí, index.php se va.

http://www.example.com/en/

Pero ahora veo un error 404.

También habilité la opción "Eliminar código de idioma" en el complemento de filtro de idioma.

Una parte de configuration.php

...
public $sef = '1';
public $sef_rewrite = '1';
public $sef_suffix = '0';
public $unicodeslugs = '0';
...

Si escribo http://www.example.com en la barra de direcciones, se carga la página de inicio. Pero si hago clic en un elemento del menú para leer un artículo, se muestra la página 404.

Cuales son tus sugerencias?

2
zkanoca

En primer lugar, en la Configuración global, configure sar reescritura de URL a . Esta es la opción para eliminar el index.php de la URL.

Una vez hecho esto, simplemente cambie el nombre de su archivo htaccess a .htaccess, que parece haber hecho ya. Esto permitirá que se realice el primer cambio mencionado anteriormente.

3
Lodder

En mi experiencia, el .htaccess el archivo debería funcionar independientemente de la configuración del sitio en varios idiomas. La razón más común para errores 404 en cualquier página PERO la página de inicio es un error en .htaccess. Hay dos líneas que debe verificar:

  1. Intenta comentar Options +FollowSymLinks como se sugiere (agregando un # al comienzo de la línea):

    # 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.
    ##
    
    ## Can be commented out if causes errors, see notes above.
    Options +FollowSymLinks
    
  2. La segunda línea que puede causar problemas es RewriteBase /

    # Uncomment following line if your webserver's URL
    # is not directly related to physical file paths.
    # Update Your Joomla! Directory (just / for root).
    ##
    
    # RewriteBase /
    

    Intente descomentar esta línea, y si instaló Joomla en un subdirectorio, agregue ese directorio después de / (ejemplo: RewriteBase /joomladir)

2
johanpw

Primero, ha realizado los pasos correctos para eliminar el index.php, simplemente hay algo mal para que el sef no funcione. En realidad, esto es perfectamente normal directamente después de cambiar a enlaces sef. Hay varias razones posibles ...

  1. No tiene un servidor Apache o no tiene habilitado mod_rewrite y .htaccess no hace nada. Probablemente lo habrás notado, pero incluido para completar. Y muchos entornos de desarrollo web localhost (como WAMPserver) DEBEN por defecto estar desactivado mod_rewrite.

  2. Necesita reconstruir sus datos sef en el administrador de menús. Simplemente haga clic en reconstruir. No tengo idea de por qué no se actualiza automáticamente.

  3. Su módulo de menú no se actualizó correctamente debido a la memoria caché. Borrar todos los cachés. Esto es con lo que generalmente me encuentro ya que el menú está integrado a la plantilla y la plantilla se almacena en caché ampliamente. También debe hacer clic en F5 dos veces para forzar al navegador a recargar todo.

0
Ville Niemi