Utilizzo del DNS per reindirizzare a un altro URL con un percorso [chiuso]


120

Sto cercando di reindirizzare un dominio a un altro tramite DNS.

So che usare IN CNAME è possibile.

www.proof.com IN CNAME www.proof-two.com.

Quello di cui ho bisogno è un reindirizzamento con un percorso. Quando qualcuno digita www.proof.com, dovrebbe portarli awww.proof-two.com/path/index.htm

So che può essere fatto utilizzando le funzionalità del server Web, ma ho bisogno del reindirizzamento DNS.

È possibile?


Se utilizzi il dominio Google, puoi utilizzare il relativo "Domain forward" nel menu a sinistra -> Sito web.
John_J

Risposte:


136

No, quello che chiedi non è possibile. DNS è un sistema di risoluzione dei nomi e non sa nulla di HTTP.


93

se utilizzi AWS, un reindirizzamento come

mail.foo.com --> mail.google.com/a/foo.com

può essere configurato come segue:

  1. in s3, crea un bucket vuoto "mail.foo.com"
  2. in Proprietà -> Hosting di siti web statici, imposta "reindirizza tutte le richieste a: mail.google.com/a/foo.com"
  3. in route53, crea un record A "mail.foo.com"
  4. abilita "alias" e imposta la destinazione dell'alias sul bucket "mail.foo.com"

non è una soluzione DNS pura, ma funziona;)

Ma attenzione, il reindirizzamento salta tutti i parametri URL, ad esempio: ...? Param1 = valore1 & param2 = valore2


3
Questa è un'ottima e molto utile risposta per chiunque utilizzi AWS. Grazie! Soluzione dolce
Ken

6
Importante da notare: il bucket deve essere denominato in modo che corrisponda al nome host a cui viene reindirizzato. Vedi serverfault.com/a/584714/105720
Jordan Feldstein

1
Funziona come un reindirizzamento a una directory, ma non a una pagina specifica. Se reindirizzi tutte le richieste a "www.example.com/foo/bar/baz.html" AWS aggiungerà "utilmente" una "/" all'URL, trasformandola in "www.example.com/foo/bar/baz .html / "e restituisce un errore 404.
Earl Ruby

34

Mi rendo conto che questo è un vecchio thread ma FWIW, nel caso qualcun altro stia cercando un modo per farlo.

Sebbene dns non comprenda la parte del percorso dell'URL, capirà i sottodomini, quindi invece di:

www.proof.com IN CNAME www.proof-two.com/path/index.htm

Potresti usare:

www.proof.com IN CNAME proof.proof-two.com

quindi vai su dove si ospita proof-two.com e impostalo su proof.proof-two.com su www.proof-two.com/path/index.htm.

~ c'è sempre più di un modo per scuoiare un gatto


2
Sembra una costruzione inutile, invece di fare in modo che proof.proof-two.com punti a www.proof-two.com/path/index.htm, potresti anche fare in modo che www.roof.com punti lì, non c'è bisogno di record DNS aggiuntivi.
Michiel

12
@ Michiel Sembra una costruzione inutile se hai un facile accesso ai proof-two.comserver web. A volte le grandi aziende (e la burocrazia) rendono tutto molto più complicato di quanto potrebbe essere.
cregox

1
"quindi vai ovunque tu ospiti proof-two.com e impostalo per puntare proof.proof-two.com su www.proof-two.com/path/index.htm" Come fare?
user2060451

17

Ho un progetto personale che potrebbe aiutarti a risolvere questo problema. È una soluzione di reindirizzamento open source che ti consente di reindirizzare il tuo dominio semplicemente modificando le impostazioni DNS. Link del progetto: https://redirect.center/ .

Per reindirizzare www.proof.com a www.proof-two.com mantenendo i parametri URL, è sufficiente impostare la voce DNS www su proof.com:

www.proof.com IN CNAME www.proof-two.com.opts-uri.redirect.center.


La domanda riguardava il reindirizzamento a un URL del percorso completo, non solo a un dominio.
Tony Chiboucas

2
Non è ancora un percorso completo
Tony Chiboucas

2
Un percorso può essere supportato tramite ".opts-slash" del servizio. funzione. Reindirizza jobs.my-domain.com a my-domain.com/jobs Configura la tua zona DNS come segue: Host Record: jobs Type: CNAME To: www.my-domain.com.opts-slash.jobs.redirect.center
David Turner

1
Questo è davvero interessante e semplice se il tuo registrar non fornisce il reindirizzamento - fantastico!
Luca Steeb

1
Questo è perfetto! Ho pensato che esistesse qualcosa di simile ma non sono riuscito a trovarlo (immagino che abbiano bisogno di lavorare sul loro SEO).
Matt Dodge

11

Veramente è facile con redirect.center

Se vuoi creare un CNAME come:

www.proof.com IN CNAME www.proof-two.com/path/index.htm

utilizzando redirect.center il tuo aspetto CNAME come modalità canonica come:

www.proof.com IN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.redirect.center.

Ora se vuoi reindirizzare al sito web https puoi aggiungere questa opzione:

www.proof.com IN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.opts-https.redirect.center.

Ora puoi creare un CNAME con la modalità canonica con barra nella pagina del tuo destino.


L'ho provato, ma non funziona. Tutto ciò che fa è reindirizzare gli utenti al sito redirect.center.
Renan

Puoi copiare il tuo registro CNAME? Puoi copiare anche il tuo sito reindirizzato?
Alvaro Aguilar

1
@Renan Assicurati che il dominio di origine sia presente nel DNS e possa essere cercato dal server redirect.center; anche la navigazione su target-domain.com.redirect.center nel browser non funzionerà. Vedi spiegazione: github.com/udleinati/redirect.center/issues/…
scorfano

11

modificare

Sembra che sia il mio provider (OVH) a consentire questo tipo di reindirizzamento all'interno della sua infrastruttura.

Vedi: https://docs.ovh.com/gb/en/domains/redirect-domain-name/

Conservo la risposta di seguito per motivi di archiviazione, ma non fornisce informazioni significative.

Risposta originale

L'ho fatto utilizzando un record TXT.

Per reindirizzare foo.bar.coma foo2.bar.com/path, aggiungi semplicemente il foo IN TXT "1|foo2.bar.com/path"tuobar.com zona DNS.

Mantiene anche i percorsi ei parametri dell'URL. Quindi, se provi ad accedere foo.bar.com/hello?foo=bar, verrai reindirizzato a foo2.bar.com/path/hello?foo=bar.


6
Potresti rimpolpare questo un po 'di più? Hai riferimenti su come utilizzare i record TXT?
Josiah

Ciò manterrà anche i parametri dell'URL?
andreas

1
Dopo un'indagine, sembra che OVH lo faccia per me. Vedi: ovh.com/fr/g1339.redirection-nom-de-domaine (fr). Aggiornerò la mia risposta.
Gabriel

10

Per rispondere alla domanda originale, no, quello che vuoi non è possibile utilizzando solo DNS (come tutti hanno affermato). Oltre a tutto ciò che è già stato menzionato, un'altra opzione è utilizzare un servizio di reindirizzamento URL. Questi tipi di servizi possono consentirti di configurare molti diversi tipi di reindirizzamenti URL a seconda delle tue esigenze. Per esempio:

  1. Inoltra l'apice di un dominio a un www. sottodominio o viceversa
  2. Inoltra una raccolta di nomi di dominio a una singola destinazione (utile per inoltrare errori di ortografia nel dominio, vecchi nomi di società, ecc.)
  3. Inoltra nomi di dominio specifici a pagine profondamente collegate (come quello che vuole l'OP)

Un servizio che fa questo è EasyRedir . Divulgazione completa: ho sviluppato EasyRedir. Ci sono sicuramente altre opzioni là fuori, quindi ti incoraggio a dare un'occhiata in giro.


5

Il DNS non reindirizzerà la parte del percorso di un URL, quindi non sarà possibile.

Aggiunta

www.proof.com IN CNAME www.proof-two.com

accederà a www.proof.com a www.proof-two.com, dove sarà necessario utilizzare la configurazione del server web per indirizzare gli utenti alla pagina appropriata.


4

La mia soluzione a questo problema era piuttosto semplice e diretta. Tutto ciò di cui hai bisogno è un server IIS in esecuzione all'interno del dominio.

Imposta CNAME in DNS in modo che punti al server IIS, utilizzando i nomi host in IIS per risolvere diversi siti su un singolo server IIS. Sto usando lo stesso server IIS per distribuire alcuni sottodomini a siti esterni.

Quindi, nella configurazione di IIS, il reindirizzamento per quel sito va al tuo sito / percorso fuori sede, nel mio caso era il nostro catalogo ospitato che volevo che catalog.ourdomain.com andasse. Da qui tutte le modifiche vengono eseguite in IIS. Assicurati di abilitare l'autenticazione anonima in modo che il traffico non venga bloccato.


3

Suppongo che tu abbia questo scenario: hai un server web unico che ospita vari siti web, ognuno dovrebbe essere presentato da un dominio separato:

quindi, il page1.html dovrebbe essere servito da www.customer1.com e così via.

  1. crea un sottodominio all'interno del server dns example.com (il tuo server web):

    customer1.example.com

  2. nelle impostazioni del tuo server virtuale Apache, mappa il sottodominio sulla directory che contiene il sito web per il tuo cliente n. 1, in questo modo:

<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost> si prega di notare il valore per "ServerAlias", è importante per il passaggio successivo-

a questo punto, dovresti essere in grado di navigare nel sito web del tuo cliente1 visitando:

customer1.example.com

  1. Nelle impostazioni DNS per customer1.com devi creare un record CNAME:

    CNAME = www LOCATION = customer1.example.com

Ora sei abilitato a utilizzare: www.customer1.com.


3

Un lavoro correlato ha concluso tutto quanto segue:

Problema:

http://a.com/p1/p2.html dovrebbe andare su http://B.com/p1/p2.html
oggi, ma successivamente, se configurato manualmente / automaticamente, lo stesso
http://a.com/p1 /p2.html dovrebbe andare a http://C.com/p1/p2.html

risposte:

DNS : converte il nome in indirizzo IP

Sebbene possa eseguire molti reindirizzamenti, l'output è sempre l'indirizzo IP DNS non comprende il percorso o la parte del protocollo dell'URL, comprende solo la parte del dominio, cioè solo a.com viene convertito in indirizzo IP, quindi quando si preme http: //a.com/p1/p2.html può essere convertito in http://152.132.121.11/p1/p2.html se si configura in modo errato nel DNS, si otterrà 152.132.121.11 (non http: //152.132. 121.11 / p1 / p2.html ), in modo da ottenere un errore di 400 (400, 403, ecc.)

Reindirizzamento : questo è http://a.com/p1/p2.html può essere convertito in http://b.com/p1/p2.html

Tutti i metodi come GET, POST possono funzionare, con eventuali intestazioni e corpo, ma è coinvolto un server Web, potrebbe essere un punto di errore, quindi scalabilità e disponibilità saranno la chiave

Se sei su AWS , Route 53 -> API Gateway è possibile tramite domini personalizzati, internamente utilizzando il fronte Cloud

È possibile con Amazon Certification Manager, domini personalizzati AWS Gateway e Route53, nota la restrizione us-east-1 su ACM

Spero che aiuti qualcuno



0

Puoi usare htaccess rewrite mod, riscrivere nella sottocartella se l'utente richiede un dominio specifico e non l'altro.


-1

Ovviamente è possibile reindirizzare, con il seguente trucco:

Crea una nuova zona primaria standard Assegnalo allo stesso nome dell'URL fittizio a cui desideri reindirizzare Assicurati che questo nome fittizio sia diverso da qualsiasi nome DNS di AD Crea un record con le seguenti voci:

vuoto ....................... A ......................... ... ip-addr-2

www ......................... Un ....................... ..... ip-addr-2

Quello che abbiamo qui è il reindirizzamento, essenzialmente. Un URL valido verrà risolto in base alla zona DNS primaria DNS esistente. Un URL fittizio verrà reindirizzato a ip-addr-2. Ciò che è importante è che il nome di questa voce sia vuoto, quindi cadrà alla voce successiva nel record e reindirizzerà a ip-addr-2


-4

Lo hanno già detto tutti e voglio solo darti un'altra opzione per un servizio che può aiutarti. www.301redirect.it è un servizio gratuito che può reindirizzare il tuo dominio (con jolly) a qualsiasi URL di destinazione.

Voglio aggiungere anche una divulgazione: sono lo sviluppatore dietro questo servizio e ci sono altre opzioni là fuori.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.