Existing Apache .htaccess to Nginx Config



我认为我丢了一点。

我尝试了一些解决方案,但我没有得到一部分。一切都必须由index.php处理,我无法在Nginx中使用它。我一直在学习nginx,这是很棒的,但真的很感谢某人的快速帮助。

我的.htaccess:

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

和我的nginx配置是:

server {
        listen 80;
        listen [::]:80;
        root /folder;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name hostname.com;
        location / {
        try_files $uri $uri/ =404;
            }
    location ~ .php$ {
        try_files = $uri @missing;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
        location @missing {
           rewrite ^ $scheme://$host/index.php permanent;
}
}

有人可以将我指向正确的方向吗?谢谢

任何不以.php结尾的URI均由location /块处理。如果要实现Apache .htaccess规则,那应该在此完成。请参阅此文档以获取更多信息。

例如:

location / {
    try_files $uri $uri/ /index.php?_route_=$uri;
}

location ~ .php$块中,您应该防止将不受控制的请求传递给PHP,例如:

location ~ .php$ {
    try_files $uri =404;
    ...
}

最新更新