2012-10-30 19 views
5

Abbiamo un'applicazione web multi-tenant in cui i clienti possono impostare domini personalizzati per il loro sito.HTTP 404 Reindirizzamento

Quando viene richiesto un dominio non valido, è necessario visualizzare una pagina di errore su un dominio diverso. Qual è il modo corretto per gestire questo? Ho pensato forse di pubblicare un 303 su una pagina dell'altro sito che restituisce sempre 404. Ciò manterrà i motori di ricerca felici?

+0

Per chiarire cosa stai cercando di ottenere: diciamo che nessuno dei tuoi clienti ha aggiunto www.example.com; se viene effettuata una richiesta al tuo server web per raggiungere www.example.com, desideri che tale richiesta venga automaticamente reindirizzata a www.example2.com/notfound.htm? L'ho capito correttamente? – Jesse

+0

Sì hai capito bene. –

+0

Deve essere un altro dominio nella barra degli indirizzi, o sarebbe sufficiente visualizzare un messaggio di errore corretto? – PointedEars

risposta

2

Sto ancora cercando di determinare la necessità di questo. Poiché non vengono fornite molte informazioni sul perché è necessario. Ci sono molti host che consentono agli utenti di creare luoghi per se stessi. Quando si verifica un errore, si collega semplicemente al 404 locale. Quindi, perché è necessario passare a un altro dominio per 404? Come impostare un documento di errore 404 con un dominio e sottodomini. Il 404 locale è chiamato per tutti loro. Non solo 404 per il dominio principale, mentre lascia i sottodomini senza tracce. Per quanto riguarda consentire agli utenti di configurare domini personalizzati, suppongo che sia stato un refuso. E intendevi "sottodomini personalizzati". A meno che non fosse corretto, ed è in qualche modo per consentire ai clienti di acquistare pacchetti di hosting da voi. Per il quale possono vendere ai propri clienti. Se quest'ultimo è corretto. Dovresti semplicemente impostare il loro ambiente correttamente. Anche se immagino che intendessi sottodominio.

ErrorDocument 404 /404.html

Ci sono pochi modi migliori per fare il seguito. Fornire solo il più veloce. quanto per voler far rimbalzare il 404 in un altro dominio è ancora possibile:

  • In .htaccess fare:

    ErrorDocument 404 /404.html 
    
  • Nell'uso 404.html locale:

    <meta http-equiv="refresh" content="0; url=http://example.com/"> 
    

Attenzione puoi usare altri metodi.

0

Per mantenere i motori di ricerca soddisfatti, lasciare che il 404 sembri proveniente dal dominio non valido per mascheramento del dominio. Ciò impedirà l'accumulo di scarsa reputazione a causa di troppi reindirizzamenti nel tempo. Un reindirizzamento occasionale al documento canonico è buono in quanto significa che stai praticando DRY (Do not Repeat Yourself) reindirizzando all'IRI canonico qualificato per il succo di ricerca. Utilizza meta noindex nella pagina 404 per impedire ai motori di ricerca di ricordare gli IRI di dominio personalizzati non validi.

1

Innanzitutto, prova a trovare un'applicazione nel tuo pannello di controllo sul tuo host web, che ti permetterà di creare una pagina di errore. Se si utilizza cPanel, questa applicazione è denominata Pagine di errore quale intestazione con l'intestazione avanzata . Dopo aver trovato questa app., Ora crea un file di (Non trovato) pagina di errore. In cPanel, ci sono specifici “URL di riferimento”, “Indirizzo IP del visitatore”, “URL richiesta”, “Nome server”, “del browser del visitatore” e “Redirect Codice di stato” I tag per questo file abilitato per SSI e dopo aver salvato la pagina di errore 404, verranno salvati in 404.shtml con un'estensione per un file riconosciuto da un server Web come file HTML abilitato per SSI. Se mai non c'è l'app Error Pages.nel tuo c-panel, prova a creare una pagina di errore manualmente con l'estensione .shtml se il tuo server è configurato per consentire questo. Se non è consentito o se il file diventa illeggibile, è comunque possibile utilizzare un'altra estensione, ma per un server Web non è riconosciuto come file HTML abilitato per SSI.

Il modo migliore è riscrivere e non reindirizzare tutti i sottodomini vuoti, in /404.shtml ma, prima, assicurarsi che nel proprio account sia presente un motore di riscrittura. Ora andremo a riscrivere tutti quei sottodomini con mod_rewrite. Prova a trovare un file .htaccess nel file manager. Questo file si trova spesso nella stessa cartella in cui si trova la pagina index. Se non ci sono file del genere, puoi crearne uno nuovo nella cartella in cui si trova il tuo index. Questo codice deve essere in cima della vostra .htaccess fonte vuota, e non rimuoverlo durante il test delle seguenti serie di condizioni e regole di seguito dopo questo:

Options +FollowSymlinks 
RewriteEngine on 

E cercare di incollare questo direttive sotto le due linee codice di cui sopra:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
Rewrite ^(.*) /404.shtml 

Se le direttive di cui sopra non ha funzionato, quindi provare il seguente sotto:

RewriteCond %{REQUEST_URI} !-f 
RewriteCond %{REQUEST_URI} !-d 
Rewrite ^(.*) /404.shtml 

Tuttavia, se non avete voglia di redirec t quei sottodomini vuoti, basta aggiungere un flag [R] dopo l'estensione del file della regola, basta non dimenticare un singolo spazio prima del flag.

Problemi correlati