Apache-2.2
PHP 網站在 NGINX 中沒有按預期工作,但在 Apache 中工作
嗨,我剛剛創建了一個連結縮短應用程序。但是,當我嘗試將縮短連結重定向到在 Facebook 上共享的完整 URL 時,它沒有按預期工作。例如:https ://bowa.me/c8443這個連結工作正常,但如果我在 Facebook 上分享連結,並且連結將是這樣的 https://bowa.me/c8443?fbclid=IwAR0Zm8bGRgrbpQTUX_aVXxTMNFq6-MlRFe0j8e_7wm4anbWmvArPlyDaAHI這個連結沒有重定向
nginx 配置
location / { try_files $uri $uri/ /index.html /index.php; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /\.ht { deny all; } if (!-e $request_filename) { rewrite ^/admin/(.*)?$ /admin/index.php?a=$1 break; rewrite ^/(.*)$ /index.php?a=$1 last; break; }
在 nginx 中,應該按照 nginx 最佳實踐來完成,而不是試圖將 Apache2 實踐轉換為 nginx。這是解決各種問題的秘訣。
您應該嘗試以下方法:
# block for processing PHP files location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /\.ht { deny all; } # Capture part after admin to variable and use in try_files location ~ ^/admin/(.*)$ { try_files $uri $uri/ /admin/index.php?a=$1; } # Default location, capture URI part and use as argument location ~ ^/(.*)$ { try_files $uri $uri/ /index.php?a=$1; }
location
順序很重要,nginx 使用它找到的塊中的第一個正則表達式匹配。