Я переглянув документацію 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
перевірити папку кеша? Я намагався і не вдався.