redirigir - Configuración de Nginx para Joomla y Codeigniter dentro de un subdirectorio
redireccionar dominio a carpeta htaccess (3)
En cuanto a la configuración de nivel de CodeIgniter, edite el archivo application / config / config.php (lea los comentarios en config.php también)
$config[''base_url''] = ''http://example.com/xml_apps'';
Si quieres buenas URL, por favor, aplica el código a continuación también
$config[''index_page''] = '''';
En cuanto a la configuración de Nginx, visite la comunidad de Nginx ; todo se explica muy bien allí.
Editar
cambiar la configuración de nginx
# removes access to "system" folder, also allows a "System.php" controller
if ($request_uri ~* ^/system)
{
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}
# unless the request is for a valid file (image, js, css, etc.), send to bootstrap
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}
La siguiente configuración de nginx
parece no funcionar y devuelve un error 404
al acceder a http://example.com/xml_apps/
, sin embargo, el sitio web de joomla funciona bien desde la URL raíz http://example.com
ACTUALIZACIÓN Parece que las solicitudes ahora están enviando a la aplicación codeigniter ya que el error 404 proviene de la aplicación CI.
http://example.com/xml_apps/index.php/xmlengine/jmprovince?category=1&count=10
¿Necesitamos algún tipo de configuración para agregar para el nivel codeigniter? para que funcione el controlador / acción.
server {
listen 80;
root /home/ubuntu/websites/example.com/public_html;
index index.html index.htm index.php;
server_name example.com;
location / {
try_files $uri $uri/ /index.php;
}
location /xml_apps/ {
if ($request_uri ~ "^system.*"){
rewrite ^/xml_apps/(.*)$ /xml_apps/index.php?/$1 last;
}
if (!-e $request_filename){
rewrite ^/xml_apps/(.*)$ /xml_apps/index.php?/$1 last;
}
}
location ~ /.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
}
Intente reemplazar su ubicación / xml_apps / block con esto
location /xml_apps/ {
try_files $uri $uri/ /xml_apps/index.php?$args;
}
Y asegúrate de que tu codeigniter base_url config sea correcta
$ config [''base_url''] = '' http://example.com/xml_apps '';
No hay ningún problema con el archivo de configuración, y suponiendo que está utilizando la última versión de NGINX, le sugiero que mire la topología de su mapa de red para ver si hay 2 o más saltos que pueden estar causando el problema, porque si hay es un enrutador que está detrás del enrutador principal de su servidor, entonces el primer enrutador descarta el protocolo HTTP. Para solucionar este problema, sugiero que salte a HYPER TERMINAL y use el comando ip route para el primer enrutador, para enrutar el dominio ip del host al rotuer que está interfiriendo con la conexión.
¡Espero que esto resuelva tu problema!