.htaccess 将子文件夹的htaccess文件转换为nginx try_文件
如何将apache.htaccess文件转换为nginx try\u文件 我在下面的文件夹结构中有静态html文件,并使用不带.html扩展名的漂亮URL样式访问它们。apache正在使用它,但当我尝试转换nginx config时,它为子文件夹抛出了404。我使用该网站进行转换.htaccess 将子文件夹的htaccess文件转换为nginx try_文件,.htaccess,nginx,nginx-config,.htaccess,Nginx,Nginx Config,如何将apache.htaccess文件转换为nginx try\u文件 我在下面的文件夹结构中有静态html文件,并使用不带.html扩展名的漂亮URL样式访问它们。apache正在使用它,但当我尝试转换nginx config时,它为子文件夹抛出了404。我使用该网站进行转换 RewriteEngine On RewriteRule ^([^\.]+)$ $1.html [NC,L] 任何帮助都是必要的 对于由PHP或其他语言支持的动态框架的前端控制器模式,try_files是一个
RewriteEngine On
RewriteRule ^([^\.]+)$ $1.html [NC,L]
任何帮助都是必要的 对于由PHP或其他语言支持的动态框架的前端控制器模式,
try_files
是一个很好的指导,其中您只有一个引导文件,例如,/index.PHP
,它“服务”SEO友好的URL:
+ root-folder
+ index.html - url - www.hello.com
+ abc.html - url - www.hello.com/abc
+ .........
+ xyz.html - url - www.hello.com/xyz
+ category-folder
+ category1.html - url - www.hello.com/category-folder/category1
+ category2.html - url - www.hello.com/category-folder/category2
+ category3.html - url - www.hello.com/category-folder/category3
+ page-folder
+ page1.html - url - www.hello.com/page-folder/page1
+ page2.html - url - www.hello.com/page-folder/page2
+ page3.html - url - www.hello.com/page-folder/page3
如果您的文件是静态的,并且您事先知道文件结构,try\u files
只会带来stat
(文件存在性检查)系统调用的性能损失
例如,应用try_文件$uri$uri.html$uri/=404意味着对于URI/category folder/category1
,NGINX首先检查实际文件/category folder/category1
,然后检查/category folder/category1.html
是否存在,如果不存在,检查/category文件夹/category1/
目录是否存在
坚持重写
非常有意义,在本例中,转换配置非常简单。这将导致它在Apache中如何工作的1:1匹配
使用我的“相当复杂”,它可以检测何时需要使用try\u文件,何时不需要,您将获得所需的重写(将其直接放在服务器
上下文中,而不是放在位置
):
要检查此重写,可以使用
正如您所看到的,唯一的诀窍是NGINX重写中的uri(以及通常在NGINX中指定的uri)必须以斜杠开头,而在Apache中它们被省略。Try:Try\u files$uri$uri.html$uri/=404代码>
+ root-folder
+ index.html - url - www.hello.com
+ abc.html - url - www.hello.com/abc
+ .........
+ xyz.html - url - www.hello.com/xyz
+ category-folder
+ category1.html - url - www.hello.com/category-folder/category1
+ category2.html - url - www.hello.com/category-folder/category2
+ category3.html - url - www.hello.com/category-folder/category3
+ page-folder
+ page1.html - url - www.hello.com/page-folder/page1
+ page2.html - url - www.hello.com/page-folder/page2
+ page3.html - url - www.hello.com/page-folder/page3
/foo/ -> /index.php
/bar/ -> /index.php
/lorem/ipsum -> /index.php
rewrite ^/([^\.]+)$ /$1.html last;