I needed to install a Moodle 2.3.2 on a Debian that runs NGINX and PHP-FPM.

Had a serious problem, because Moodle was not loading javascript, css and images.

Apparently it was a matter of rewrite. Researching on Google I saw that Moodle uses a URL system somewhat like this:

So I really needed to write a rewrite rule that would support that structure. A little bit more researching and got on this result:

The Moodle that I installed lies on a folder inside webroot, that is called moodle. If yours lies directly on webroot, remove the /moodle from the rewrite.

Hope this tip helps a lot of people.

11 thoughts on “NGINX rewrite for Moodle

  1. Olá… Esse artigo pode ser uma luz para resolver meu problema… Estou instalando o moodle, mas ele não carrega as imagens dos icones, ou quaisquer outras. Por favor, poderia me explicar um passo a passo de como realizar o que você sugere em seu artigo? Nao tenho muita experiência em programação, mas se puder explicar com detalhes, conseguirei resolver o meu problema. Muito obrigado.

  2. very useful. thank you.
    I use winginx and this worked for me :
    location ~ \.php($|/) {

    rewrite ^/moodle/(.*)/(.*\.php)(/)(.*)$ /moodle/$1/$2?file=/$4 last;

    if ($host ~ ^(www\.)?([a-z0-9\-\.]+)$){
    root home/$2/public_html;
    access_log logs/$2-access.log main;
    }

    if (!-e $document_root$document_uri){return 404;}
    fastcgi_pass localhost:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include fastcgi_params;

    }

    1. No virtual host do seu NGINX, que corresponda ao seu Moodle… Geralmente fica em /etc/nginx/sites-available.

      Digamos que seu dominio é batatinha.com.br. Talvez esteja em /etc/nginx/sites-available/batatinha.com.br.

  3. Cara, valeu! Salvou aki. Colei o código Rewrite da forma que está aí na personalização do Ginx do Ajenti V, com a versão 3.0.3 do moodle.
    Funfou legal.
    Valeu

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.