Я переглянув документацію nginx, і вона все ще мене абсолютно бентежить.
Як try_filesпрацює? Ось що говорить документація:
try_files
синтаксис: try_files path1 [path2] uri
за замовчуванням: жоден
контекст: сервер, місцезнаходження
наявність: 0.7.27
Перевіряє наявність файлів у порядку і повертає перший знайдений файл. Косою косою рисою вказується на каталог - $ uri /. У разі, якщо не знайдено жодного файлу, викликається внутрішнє переадресація на останній параметр. Останній параметр - резервний URI і повинен існувати, інакше буде піднята внутрішня помилка. На відміну від переписати, $ аргументи не зберігаються автоматично, якщо резервна копія не є названим місцем. Якщо вам потрібні аргументи, збережені, ви повинні зробити це явно:
Я не розумію, як він перевіряє шляхи і що робити, якщо я не хочу внутрішньої помилки, але чи відновити це решту шляху, намагаючись знайти інший файл?
Якщо я хочу спробувати кешований файл у, /path/app/cache/url/index.htmlі якщо він не вдається спробувати, /path/app/index.phpяк би це записати? Якби я написав:
try_files /path/app/cache/ $uri
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
Я маю index index.php index.html index.htm;. Коли я приїжджаю /urlname, він буде намагатися перевірити /path/app/cache/urlname/index.phpто /path/app/cache/urlname/index.html? Якщо ми ігноруємо все після того try_files, чи можна try_filesперевірити папку кеша? Я намагався і не вдався.