将规则重写为nginx conf



我用获得了.htaccess

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

我需要将其转换为nginx-conf,这很简单,但我找不到。。

我试过了:

server {
server_name ****;
root /path;
index index.html index.php;
listen 80;
# set expiration of assets to MAX for caching
location ~* .(ico|css|js|gif|jpe?g|png)(?[0-9]+)?$ {
expires max;
log_not_found off;
}
location / {
if (!-e $request_filename){
rewrite ^(.+)$ /index.php?url=$1 break;
}
}
location ~* .php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index  index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

但它下载文件而不是显示它。我不明白吗?

如果我使用,它会起作用

http://example.com/index.php?url=login

但不包括:

http://example.com/login

好的,它可以使用:

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

最新更新