¿Cómo eliminar el index.php en la url?

2

He instalado wordpress en un subdirectorio ( blog ). En el directorio raíz he instalado Magento. Ahora el directorio de archivos es el siguiente:

app
downloader
includes
media
....
blog/wp-admin

Mi servidor es nginx . Cuando configuro la URL en wordpress Configuración de Permalink a:

http://www.example.com/blog/index.php/sample-post/ 

... todas las publicaciones están disponibles. Ahora quiero eliminar el index.php de esa URL. ¿Cómo debo hacer eso? Cuando configuro la estructura personalizada en ...

http://www.example.com/blog/sample-post/

... WordPress no resuelve las URL y obtengo un 404.

    
pregunta stack2013110 16.01.2013 - 07:08

2 respuestas

2

Coloque este código en su archivo functions.php

   add_filter( 'got_rewrite', '__return_true', 999 );

Actualización:

got_mod_rewrite () para verificar si la el servidor actual es apache o no utiliza la función apache_mod_loaded () . Ya que estamos usando nginx devuelve falso. Entonces, wordpress agrega index.php en la url.

Al utilizar el filtro got_rewrite que estamos diciendo WordPress que nos reescribimos en nuestro servidor.

    
respondido por el Giri 16.01.2013 - 10:12
2

El problema probablemente tiene que ver con la configuración del servidor en Nginx para tu blog. Es probable que las reglas de ubicación para / blog / sean incorrectas, específicamente try_files. Debería verse así:

location /blog/ {
     try_files $uri $uri/ /index.php$is_args$args;
}

Esto le dice a Nginx el orden en que debe tratar de encontrar el recurso solicitado. Primero comenzará intentando encontrar el objeto exacto en la URL. Si eso no existe, intentará encontrar ese objeto como un directorio. Si eso no existe, pasará la solicitud a index.php junto con cualquier argumento o cadena de consulta, si está presente. Desde index.php en el controlador principal de WordPress, esto hará que WordPress encuentre la página o publicación que haya solicitado según las reglas de reescritura.

Lo bonito de esta configuración es que ahora puedes cambiar tu estructura de enlace permanente a cualquier cosa que WordPress admita sin tener que cambiar tus reglas de Nginx. Este es también el método recomendado sobre el uso de reglas de reescritura explícitas en Nginx.

    
respondido por el Christiaan 18.04.2013 - 20:29

Lea otras preguntas en las etiquetas