問題陳述: 當原始請求是不存在的位置時,nginx 似乎不會重定向。所有其他重定向似乎都可以正常作業。也有可能 php 沒有在重定向頁面上執行腳本。下面提供了 nginx conf。
問題: 我錯過了什么,我需要做什么才能完成這項作業?nginx是否可能不支持從不存在的頁面重定向?
一些背景關系可能會有所幫助:這是一個被重定向的典型請求:
73.234.24.22 - - [30/May/2022:16:15:05 0000] "GET /postevent3.asp?dta=05/30/22 16:15:22 507 +149642656 -254084882 -0001787 682829361 HTTP/1.1" 302 154 "-" "-"
請注意,沒有針對此請求的頁面顯示;請求被轉儲到緩沖區,處理并寫入資料庫。請參閱本文末尾的 nginx 除錯日志摘錄。
更改 URL 是不切實際的,因為有幾十個單位分散在世界各地。大多數單位無法遠程更新。
現在不使用的原始站點使用了apache。當前站點使用nginx。我對網路服務器不是很熟悉,所以我可能錯過了一些明顯的東西。所有的想法將不勝感激。
我還在埠 80 服務器塊中嘗試了以下操作:
location / {
try_files $uri $uri/ /data/submit_legacy.php?$query_string;
}
nginx 組態檔----------------------------------------------- ----------------------
server {
listen 80;
listen [::]:80;
root /var/www/example.org;
server_name example.org www.example.org ;
index index.php index.html index.htm;
expires -1;
rewrite_log on;
error_log /var/www/example.org/data/http-org-submit.log debug;
#=# ========================================================================= #=#
#=# Intercept request for postevent3.asp and send it data/submit_legacy.php, #=#
#=# be sure to change to return 301 when testing is complete #=#
#=# ========================================================================= #=#
location = /postevent3.asp {
return 302 https://example.org/data/submit_legacy.php?$query_string;
}
location / {
return 302 https://$host$request_uri;
}
}
server {
listen [::]:443 ssl http2; # managed by Certbot
listen 443 ssl http2; # managed by Certbot
root /var/www/example.org;
server_name example.org www.example.org;
index index.php index.html index.htm;
expires -1;
rewrite_log on;
error_log /var/www/example.org/data/https-org-submit.log debug;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypta/ssl-dhparams.pem; # managed by Certbot
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
client_max_body_size 100M;
}
從 nginx 除錯檔案中提取:-------------------------------------------- ------------------
2022/05/30 17:35:15 [debug] 37669#37669: *1 write new buf t:1 f:0 000055BC271BE300, pos 000055BC271BE300, size: 390 file: 0, size: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 http write filter: l:0 f:0 s:390
2022/05/30 17:35:15 [debug] 37669#37669: *1 http output filter "/postevent3.asp?dta=05/30/22 17:35:32 564 +188886495 +025481359 +0005990 570742577"
2022/05/30 17:35:15 [debug] 37669#37669: *1 http copy filter: "/postevent3.asp?dta=05/30/22 17:35:32 564 +188886495 +025481359 +0005990 570742577"
2022/05/30 17:35:15 [debug] 37669#37669: *1 image filter
2022/05/30 17:35:15 [debug] 37669#37669: *1 xslt filter body
2022/05/30 17:35:15 [debug] 37669#37669: *1 http postpone filter "/postevent3.asp?dta=05/30/22 17:35:32 564 +188886495 +025481359 +0005990 570742577" 000055BC271BE5D0
2022/05/30 17:35:15 [debug] 37669#37669: *1 write old buf t:1 f:0 000055BC271BE300, pos 000055BC271BE300, size: 390 file: 0, size: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 write new buf t:0 f:0 0000000000000000, pos 000055BC260A7AC0, size: 92 file: 0, size: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 write new buf t:0 f:0 0000000000000000, pos 000055BC260A7E20, size: 62 file: 0, size: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 http write filter: l:1 f:0 s:544
2022/05/30 17:35:15 [debug] 37669#37669: *1 http write filter limit 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 writev: 544 of 544
2022/05/30 17:35:15 [debug] 37669#37669: *1 http write filter 0000000000000000
2022/05/30 17:35:15 [debug] 37669#37669: *1 http copy filter: 0 "/postevent3.asp?dta=05/30/22 17:35:32 564 +188886495 +025481359 +0005990 570742577"
2022/05/30 17:35:15 [debug] 37669#37669: *1 http finalize request: 0, "/postevent3.asp?dta=05/30/22 17:35:32 564 +188886495 +025481359 +0005990 570742577" a:1, c:1
2022/05/30 17:35:15 [debug] 37669#37669: *1 set http keepalive handler
2022/05/30 17:35:15 [debug] 37669#37669: *1 http close request
2022/05/30 17:35:15 [debug] 37669#37669: *1 http log handler
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC271E7D10, unused: 10
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC271BDE40, unused: 1875
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC2719E1B0
2022/05/30 17:35:15 [debug] 37669#37669: *1 hc free: 0000000000000000
2022/05/30 17:35:15 [debug] 37669#37669: *1 hc busy: 0000000000000000 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 tcp_nodelay
2022/05/30 17:35:15 [debug] 37669#37669: *1 reusable connection: 1
2022/05/30 17:35:15 [debug] 37669#37669: *1 event timer add: 32: 65000:84579871
2022/05/30 17:35:15 [debug] 37669#37669: *1 http keepalive handler
2022/05/30 17:35:15 [debug] 37669#37669: *1 malloc: 000055BC2719E1B0:1024
2022/05/30 17:35:15 [debug] 37669#37669: *1 recv: eof:1, avail:-1
2022/05/30 17:35:15 [debug] 37669#37669: *1 recv: fd:32 0 of 1024
2022/05/30 17:35:15 [info] 37669#37669: *1 client 93.181.63.177 closed keepalive connection
2022/05/30 17:35:15 [debug] 37669#37669: *1 close http connection: 32
2022/05/30 17:35:15 [debug] 37669#37669: *1 event timer del: 32: 84579871
2022/05/30 17:35:15 [debug] 37669#37669: *1 reusable connection: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC2719E1B0
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC271E7B00, unused: 136
2022/05/30 17:35:15 [debug] 37669#37669: *2 http header: "Host: www.example.org"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http header done
2022/05/30 17:35:15 [debug] 37669#37669: *2 event timer del: 32: 84575067
2022/05/30 17:35:15 [debug] 37669#37669: *2 generic phase: 0
2022/05/30 17:35:15 [debug] 37669#37669: *2 rewrite phase: 1
2022/05/30 17:35:15 [debug] 37669#37669: *2 test location: "/"
2022/05/30 17:35:15 [debug] 37669#37669: *2 test location: "postevent3.asp"
2022/05/30 17:35:15 [debug] 37669#37669: *2 using configuration "=/postevent3.asp"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http cl:-1 max:1048576
2022/05/30 17:35:15 [debug] 37669#37669: *2 rewrite phase: 3
2022/05/30 17:35:15 [debug] 37669#37669: *2 http set discard body
2022/05/30 17:35:15 [debug] 37669#37669: *2 http script copy: "https://example.org/data/submit_legacy.php?"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http script var: "dta=10/14/02 17:35:24 00096 +204823178 +089853375 +0008360 634488566
10/14/02 17:35:27 00096 +204823175 +089853369 +0008402 392294994
10/14/02 17:35:31 00096 +204823170 +089853326 +0008462 215533034
10/14/02 17:35:32 00096 +204823166 +089853317 +0008472 020574633
"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http finalize request: 302, "/postevent3.asp?dta=10/14/02 17:35:24 00096 +204823178 +089853375 +0008360 634488566
10/14/02 17:35:27 00096 +204823175 +089853369 +0008402 392294994
10/14/02 17:35:31 00096 +204823170 +089853326 +0008462 215533034
10/14/02 17:35:32 00096 +204823166 +089853317 +0008472 020574633
" a:1, c:1
2022/05/30 17:35:15 [debug] 37669#37669: *2 http special response: 302, "/postevent3.asp?dta=10/14/02 17:35:24 00096 +204823178 +089853375 +0008360 634488566
10/14/02 17:35:27 00096 +204823175 +089853369 +0008402 392294994
10/14/02 17:35:31 00096 +204823170 +089853326 +0008462 215533034
10/14/02 17:35:32 00096 +204823166 +089853317 +0008472 020574633
"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http set discard body
2022/05/30 17:35:15 [debug] 37669#37669: *2 xslt filter header
2022/05/30 17:35:15 [debug] 37669#37669: *2 HTTP/1.1 302 Moved Temporarily
Server: nginx/1.18.0 (Ubuntu)
Date: Mon, 30 May 2022 17:35:15 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
Location: https://example.org/data/submit_legacy.php?dta=10/14/02 17:35:24 00096 +204823178 +089853375 +0008360 634488566
10/14/02 17:35:27 00096 +204823175 +089853369 +0008402 392294994
10/14/02 17:35:31 00096 +204823170 +089853326 +0008462 215533034
10/14/02 17:35:32 00096 +204823166 +089853317 +0008472 020574633
Expires: Mon, 30 May 2022 17:35:14 GMT
Cache-Control: no-cache
uj5u.com熱心網友回復:
如果我猜測發起此請求的軟體無法解釋 302 HTTP 重定向代碼并發出新請求是正確的,那么您唯一的方法是在 HTTP 塊本身內處理請求。而不是你現在的
location = /postevent3.asp {
return 302 https://example.org/data/submit_legacy.php?$query_string;
}
您可以檢查此配置:
location = /postevent3.asp {
rewrite ^ /data/submit_legacy.php break;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$uri;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
如果使用此配置,您的請求將開始出現在您的資料庫中,這肯定意味著我最初的猜測是正確的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/485046.html
