Precisei instalar um Moodle 2.3.2 em um Debian que roda NGINX e PHP-FPM.
Tive um problema sério, porque o Moodle não carregava arquivos de javascript, css e imagens.

Aparentemente era uma questão de rewrite. Pesquisei no Google e vi que o Moodle usa o sistema de URL mais ou menos assim:

Então eu realmente precisava escrever um rewrite que desse suporte a esta estrutura. Mais um pouco de pesquisa e cheguei neste resultado:

O Moodle que instalei está em um pasta dentro da raiz, que se chama moodle. Se o seu estiver direto na raiz, retire os /moodle do rewrite.

Espero que esta dica ajude muitas pessoas

11 thoughts on “Rewrite do NGINX para 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

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *