Nginx

如何將 htaccess 規則“轉換”為 nginx 規則?

  • January 12, 2020

我想將此規則“轉換”為 nginx 規則。我認為位置塊是正確的位置,但我的解決方案不起作用。

Options -Indexes
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule ^(.*)$ public/$1 [QSA,END]
RewriteCond %{REQUEST_FILENAME} !index\.php
RewriteRule ^(.+)$ index.php?route=$1 [QSA,L]

我試過這個

location / {
 rewrite ^(.*)$ /public/$1;
 rewrite ^(.+)$ /index.php?route=$1 break;
}

nginxrewrite指令是無條件應用的,而您的重寫規則中有許多條件。請改用try_files 指令

location = /index.php {
   # PHP options
}

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

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