Nginx

Nginx 規則轉換

  • December 11, 2016

我有這些 htaccess 規則:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
   Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

我使用了一個線上轉換器,這就是它給我的,但是,它不起作用,所以我不確定它有什麼問題。

location / {
rewrite ^/(.*)/$ /$1 redirect;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php break;
}
}

提前致謝

在 nginx 中,您不使用rewrite前端控制器,而是使用try_files. 您的配置應如下所示:

server {
   ...
   try_files $uri $uri/ /index.php;

   location ~ (.+)/$ {
       return 301 $scheme://$host$1;
   }
}

引用自:https://serverfault.com/questions/820064