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

Перепишите все запросы в index.php, кроме определенных запросов подкаталога

Я хочу переписать все запросы на /index.php, Кроме /css/* и /js/*.

Это мой оригинальный конфиг

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

который работает, но позволяет мне напрямую обращаться ко всем файлам. Я пробовал это

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

но не мог справиться со странными ошибками, такими как нарушение синтаксического анализа PHP. После того, как я получу /index.php переписать работу, я полагаю, я должен сделать что-то вроде location /css/ { .. } и т. д., но я не совсем уверен.

Есть идеи, как это решить? Спасибо.

На самом деле нашел ответ сразу после того, как разместил этот вопрос.

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;
}

Уловка заключалась в том, чтобы поставить php location выше других.