Attualmente ogni pagina non valida è 500 (Errore interno del server) perché probabilmente ho incasinato la configurazione del mio blocco server.Come posso forzare il reindirizzamento di tutti gli 404 (o di ogni pagina, sia essa non valida o non valida) sulla home page?
Ho deciso di chiudere il mio sito Web qualche tempo fa e ho creato una semplice pagina di una pagina, grazie. Tuttavia i vecchi link e siti esterni stanno ancora tentando di accedere ad altre parti del sito, che non esiste più.
Come si fa a forzare il reindirizzamento di tutte le pagine non di homepage (eventuali URL non validi) nella home page?
ho provato con il seguente blocco, ma non ha funzionato:
location/{
try_files $uri $uri/ $document_uri/index.html;
}
La mia configurazione corrente è (non so nemmeno servire PHP file in questo momento, vale a dire homepage è semplice html):
server {
server_name www.example.com example.com;
access_log /srv/www/example.com/logs/access.log;
error_log /srv/www/example.com/logs/error.log;
root /srv/www/example.com/public_html;
index index.php index.html;
location/{
try_files $uri $uri/ $document_uri/index.html;
}
# Disable favicon.ico logging
location = /favicon.ico {
log_not_found off;
access_log off;
}
# Allow robots and disable logging
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Enable permalink structures
if (!-e $request_filename) {
rewrite . /index.php last;
}
# Handle php requests
location ~ \.php$ {
try_files $uri = 404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_send_timeout 900;
fastcgi_read_timeout 900;
fastcgi_connect_timeout 900;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# Disable static content logging and set cache time to max
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires max;
}
# Deny access to htaccess and htpasswd files
location ~ /\.ht {
deny all;
}
# Deny access to hidden files (beginning with a period)
location ~ /\. {
access_log off; log_not_found off; deny all;
}
}
Non riesco a pensare a una situazione in cui è necessario "ignorare" il vero codice di stato http. Se una pagina non viene trovata, dovrebbe restituire un codice di stato 404. – ILikeTacos
Ricordo che una volta dovevamo farlo al lavoro, ma non riesco a ricordare perché. –
@AlanChavez Se gestisci un negozio, tutti i visitatori del tuo sito devono essere "convert-able". Se qualcuno riceve un URL vecchio o danneggiato e vede la pagina 404, vale $ 0. Se lo si reindirizza alla home page, c'è il potenziale che si guarderà intorno. L'invio di un codice di stato 200 per tutto il tempo garantisce inoltre che i sistemi di tracciabilità e analisi ottengano il maggior numero di dati possibile: molti sistemi visualizzeranno lo stato 404 e presumeranno che la pagina non porti da nessuna parte. – William