重谢 , 帮忙解释下 nginx try_files

gclove
  • 1.4k

谁给的差评 ... 法克 !!


nginx 官方关于这个的文档 ... 但是没看懂 ...

http://nginx.org/en/docs/http/converting_rewrite_rules.html

就是把这个 , 写成 nginx 规则

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]


必有重谢 .. 送ShadowSocks

回复
阅读 10.2k
1 个回答
✓ 已被采纳

上面规则的意思如果URI对应的文件或文件夹不存在就进行rewrite。apache的%{REQUEST_FILENAME}在nginx与之对应的是$uri,所以你上面的规则可以用如下的try_files 配置

try_files    $uri $uri/  /index.php?_url=/$uri&$args;

try_files的作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。

$args 表示url中的参数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏