繁体   English   中英

HTACCESS转NGINX

[英]HTACCESS to NGINX

我正在尝试将 htaccess 规则转换为 nginx。 我是 nginx 的新手,在线转换器也无济于事。

在 www 文件夹中

<IfModule mod_rewrite.c>
    RewriteEngine on

   RewriteRule ^$ public/ [L]
    RewriteRule (.*) public/$1 [L]
</IfModule>

公共文件夹内

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

有人可以帮我将这些 htaccess 规则转换为 nginx 吗?

也许您的配置看起来像这样:

server {
  listen *:80;
  server_name source.example.com;
  server_tokens off; 

  location / {
        root /var/www;
  }

  location /public {
        root /var/www/public; # or so, put here your path to public dir
  }

  location @public {
    proxy_read_timeout 180;
    proxy_connect_timeout 180; 
    proxy_redirect     off;

    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_set_header   Host              $http_host;
    proxy_set_header   X-Real-IP         $remote_addr;

    proxy_pass http://host/public;
  }
}

我忘记了一些细节,但也许您需要类似的东西

如果 wordpress 站点位于 /var/www/html/web/wordpress 内,则 nginx 配置应为

location ~ ^/web/wordpress/index\.php$ { }

location /web/wordpress/ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
if (!-e $request_filename){
    rewrite ^/web/wordpress/(.*)$ /web/wordpress/index.php break;
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM