如何解决如何将 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 举报,一经查实,本站将立刻删除。