Nginx
將 .htaccess 轉換為 nginx。重寫不能正常工作
我無法將 .htaccess 轉換為 nginx 配置。我一直在嘗試使用線上轉換工具。.htaccess 轉換如下:
RewriteEngine on RewriteCond %{REQUEST_URI} !/public RewriteCond %{REQUEST_URI} !/index.php RewriteRule ^(.*)$ index.php/?params=$1 [NC]
我一直在嘗試使用以下 nginx 配置:
location / { rewrite ^(.*)$ index.php/?params=$1; }
這只是不能正常工作。它還可以訪問此目錄中的其他文件。我只希望 index.php 可用。甚至需要使用 .htaccess 規則。
無法在生產伺服器上安裝 apache/httpd。而且我不想浪費資源在 docker 中執行 apache。
在 Apache 中,您有這些
RewriteCond
用於排除!/public
和的指令/index.php
。在 Nginx 中,只需為它們添加一個單獨location
的 s:location /public { } location = /index.php { }
你
rewrite
幾乎就在那裡,但與 Apache 不同的是,Nginx 中的替換字元串始終是根相對(而不是location
相對)並且應該具有前導/
.php/?
另外,我建議刪除不必要的斜線。location / { rewrite ^(.*)$ /index.php?params=$1; }