Joomla 的 nginx 重写规则!

Joomla 的 nginx 重写规则!

我已经从存储库 (v0.7.65) 在 Ubuntu 上安装了 nginx,虽然我的默认站点配置与 WordPress 漂亮 URL 和 nginx 兼容性插件配合得很好(到目前为止),但与 Joomla! 配合不好。配置如下:

server {
listen   80 default;
server_name  localhost;

access_log  /var/log/nginx/localhost.access.log;

root   /var/www/nginx-default;

location /wordpress {
    try_files $uri $uri/ @wordpress;
}

location /joomla {
    try_files $uri $uri/ @joomla;
}

# Configuración para instalaciones de WordPress
location @wordpress {
    fastcgi_pass   127.0.0.1:9120;
    fastcgi_param SCRIPT_FILENAME $document_root/wordpress/index.php;
    include fastcgi_params;
}

# Configuración para instalaciones de Joomla!
location @joomla {
    fastcgi_pass   127.0.0.1:9120;
    fastcgi_param SCRIPT_FILENAME $document_root/joomla/index.php;
    include fastcgi_params;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9120;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

}

我让它显示索引、管理员和下一级链接。也就是说,如果我访问 /joomla/joomla-overview,它工作得很好(使用友好的 URL 并在 Joomla 中启用 Apache mod_rewrite!),但如果我尝试 /joomla/joomla-overview/what-is-new-in-1-5,我会得到一个错误

您认为这里发生了什么?您是否知道其他可以使其正常工作的设置,最好是在我现在的环境中?

提前感谢您的支持。

附言:请别介意,我没有找到太多与我的问题相关的帮助。我尝试了不同的解决方案,但都无济于事。

答案1

我不确定这个问题是否已经解决,但是这个 nginx 配置适用于我的 joomla 安装。

服务器 {
  服务器名称 example.com;
  重写 ^ http://www.example.com$request_uri 永久;
 }
服务器 {
  服务器名称www.example.com;
  根/home/public_html/example.com/public;
  错误页面 404 /404.html;
  try_files $uri $uri/ /index.php?q=$request_uri;

  索引 index.php index.htm index.html;
  # 直接提供静态文件
  位置 ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|html)$ {
    访问登录关闭;
    30天后到期;
  }
  位置 404.html{
    索引/404.html;
  }
  位置 ~* \.php$ {
    # 如果需要,请务必使用不同的服务器来运行 fcgi 进程
    fastcgi_pass 127.0.0.1:9000;
    包括/etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param 内容类型 $内容类型;
    fastcgi_param 内容长度 $内容长度;
  }
  位置 ~ /\.ht {
    全部否认;
  }
}

相关内容