我有一个网站需要从 Apache 服务器转移到 Nginx 服务器。
本网站的.htaccess文件如下
RewriteEngine on
RewriteRule ^([^/\.]+)/?$ $1.php [L]
这会将 www.example.com/hello 重定向到 www.example.com/hello.php 保留原始链接,但从 url 末尾省略 .php。
我试图在我的 Nginx 服务器块中复制它..
location / {
# Check if a file exists, or route it to index.php.
try_files $uri $uri/ /index.php;
}
rewrite ^/([a-z]+)$ /$1.php last;
重写规则有效,将所有链接重定向到 .php 文件,但如果文件不存在,则会破坏 Nginx try_files 规则以在目录内搜索。
下面的管理示例链接是一个文件夹,里面有一个 index.php 文件。
www.example.com/admin
try_files 应该将其重定向到..
www.example.com/admin/
由于没有名为 admin.php 的文件。相反,我收到“未指定输入文件”消息。
当我删除重写时,try_files 工作正常。但是,如果没有此重写规则,站点的其余部分将无法工作。
有谁知道我怎样才能让 try_files 和 rewrite 一起工作?
谢谢
本