Reescreva todas as solicitações para index.php, exceto certas solicitações de subdiretórios

1

Eu quero reescrever todas as solicitações para /index.php , exceto /css/* e /js/* .

Esta é a minha configuração original

location / {
    try_files $uri /index.php$is_args$args;
}

que funciona, mas permite acessar todos os arquivos diretamente. Eu tentei isso

location / {
    rewrite ^(.+)$ /index.php break;
}

mas não conseguiu passar erros estranhos como quebra de análise do PHP. Depois que obtenho o /index.php reescrito, presumo que deveria fazer algo como location /css/ { .. } etc, mas não tenho certeza.

Alguma ideia de como resolver isso? Obrigado.

    
por Znarkus 15.02.2013 / 17:38

1 resposta

4

Na verdade, encontrei uma resposta logo depois que publiquei esta pergunta.

location ~ \.php$ {
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include         fastcgi_params;
}

location /css/ {}
location / {
    rewrite ^ /index.php last;
}

O truque parecia ser colocar o php location acima dos outros.

    
por 15.02.2013 / 17:47

Tags