Bun venit la ServerFault.
Dar dacă URI-ul solicitat este HTTP și 404 - nu am nevoie de o redirecționare. Este
Există vreo soluție pentru această configurație specifică?
Nu știu cum să fac asta. Nu sunt sigur dacă este chiar posibil.
Există, de asemenea, posibilitatea de a dezactiva redirecționarea HTTPS + www pentru 404
link-uri ca http://www.test.com
Nu înțeleg această întrebare.
Dacă punctul 1 sau 2 nu se poate face, pot codifica o listă de 404 URL-uri cu
nginx să dezactiveze complet orice redirecționare pentru ei și să arate doar 404
pagină? (HTTPS și www)
Este posibil. Presupunând că avem lista de fișiere la /home/admin/web/test.com/web/404.conf
in urmatorul format...
/despre-noi/ 404;
/despre-noi/ 404;
/contactt-ne/ 404;
/contact-ne/ 404;
În loc de textul „404”, am putea avea orice, cu excepția „0” (zero).
Configurația modificată ar arăta așa...
harta $uri $allwillburnn { include /home/admin/web/test.com/web/404.conf; }
Server {
asculta x.x.x.x:80;
nume_server test.com www.test.com;
root /home/admin/web/test.com/web/;
index index.php index.html index.htm;
access_log /var/log/nginx/domains/test.com.log combinat;
access_log /var/log/nginx/domains/test.com.bytes octeți;
error_log /var/log/nginx/domains/test.com.error.log eroare;
if ( $allwillburnn ) { return 404; }
returnează 301 https://test.com$request_uri;
}
Explicație: În mod implicit, pentru orice URL-uri care nu sunt enumerate în cele menționate mai sus 404.conf
fișier, variabila numită $allwillburnn
este atribuită unei valori de 0 (zero) prin Hartă. În acest caz, dacă blocul este omis, rezultând redirecționarea 301.
Pentru adresele URL enumerate în 404.conf
fişier, $allwillburnn
este atribuită unei valori diferite de zero. În acest caz, dacă blocul este analizat, rezultă 404.
Sper ca te ajuta.