Назад | Перейти на главную страницу

Правила перезаписи nginx для Joomla!

У меня nginx установлен на Ubuntu из репозитория (v0.7.65), и хотя моя конфигурация сайта по умолчанию творит чудеса с красивыми URL-адресами WordPress и плагином совместимости с 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-адресами и включенным Apache mod_rewrite в Joomla!), Но если я попробую / joomla / joomla-overview / what-is-new-in-1 -5, я получаю ошибка.

Как вы думаете, что здесь происходит? Знаете ли вы, какие другие настройки заставят его работать, желательно в той среде, которая у меня есть сейчас?

Заранее спасибо за вашу поддержку.

PS: Пожалуйста, я не нашел большой помощи по моей проблеме. Я пробовал разные решения, но безрезультатно.

Я не уверен, что это было решено, но эта конфигурация nginx работает для моей установки joomla.

server {
  server_name example.com;
  rewrite ^ http://www.example.com$request_uri permanent;
 }
server {
  server_name www.example.com;
  root /home/public_html/example.com/public;
  error_page   404          /404.html;
  try_files $uri $uri/ /index.php?q=$request_uri;

  index index.php index.htm index.html;
  # serve static files directly
  location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|html)$ {
    access_log off;
    expires 30d;
  }
  location 404.html{
    index /404.html;
  }
  location ~* \.php$ {
    # By all means use a different server for the fcgi processes if you need to
    fastcgi_pass 127.0.0.1:9000;
    include /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 CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
  }
  location ~ /\.ht {
    deny all;
  }
}