微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 htaccess 转换为 nginx

如何解决如何将 htaccess 转换为 nginx

我在将 htaccess 文件转换Nginx 时遇到问题。也许有人可以帮助我。

我需要转换以下代码

Options +FollowSymLinks -MultiViews
RewriteEngine On 
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index\.PHP/$1 [L,QSA]

我试过了,但这根本不起作用:

    location / {
    try_files $uri $uri/ /index.PHP?$args;
}

解决方法

RewriteRule ^(.*)$ index\.php/$1 [L,QSA]
location / {
    try_files $uri $uri/ /index.php?$args;
}

(我假设您的 .htaccess 文件位于文档根目录中。)

您的 Apache RewriteRule 指令将 URL 路径作为路径信息传递给 index.php 脚本,因此您的 Nginx 指令应该类似于以下内容:

location / {
    try_files $uri $uri/ /index.php$uri$is_args$args;
}

$uri 已经包含斜线前缀。默认情况下,Apache 也会传递查询字符串,但在 Nginx 中,您需要附加 $is_args$args。 (当 $is_args(查询字符串)非空时,? 只包含 $args。)

,

我发现这有效:

if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?$1;

}

但是安全吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。