2016-08-23 2 views
0

Ich bin gefragt, wenn ich einen Weg einrichten kann - dynamisch eine URL-Umschreibung zu tun.Wie dynamische URL-Umschreibung durchzuführen ... in Code

Meine Erfahrung mit URL-Rewriting verwendet hauptsächlich im Wesentlichen statische web.config-Dateien, wo ich im Voraus wusste, welche Bedingungen ich unterstützte. Aber in diesem Fall arbeite ich mit einem Partner zusammen, der mir Daten über seine Kunden sendet und wenn ein Benutzer meiner Website auf eine dieser Seiten geschickt wird, möchte ich, dass ich die URL so umschreibe, dass sie wie ihre aussieht Client-URL und nicht meine.

Beispiel: die Suche meine Website für Jims Auto-Shop, wenn ich meine (ihre) Inhalt über Jims Auto-Shop anzeigen, würde die URL nicht auf meiner Website erscheinen, würde es zeigen "www.JimsAutoShop.com" wenn es wirklich auf "wwww.mysite.com/JimsAutoShop" ist

Ich nehme an, jedes Mal, wenn unser Partner wir Daten drückt, wo dies benötigt wird, könnte ich die Datei web.config umschreiben einen Abschnitt für diesen Fall, aber ich wirklich nicht Ich weiß nicht, dass das eine gute Idee ist. gibt es eine Möglichkeit, dies im Wesentlichen dynamisch über Code zu tun, wo ich, wenn ich meine db von einer Suche abfrage und sehe, dass ich die URL maskieren muss, könnte ich das tun?

Tech weise, ich habe keinen Zugriff auf IIS, ich bin auf einem freigegebenen Server mit IIS und meine primäre Anwendung Stapel ist Coldfusion10. Danke

+0

Wenn Sie Zugriff auf IIS hatten, können Sie eine Website mit dem Namen "JimsAutoShop.com" starten, deren Stammverzeichnis das Verzeichnis [...]/mysites.com/wwwroot/JimsAutoShop/ ist. Da Sie auf einem freigegebenen Server sind, glaube ich nicht, dass dies möglich ist, aber Sie können immer noch den Hosting-Anbieter fragen. – Jules

+0

Danke Jules. Nun, da es hundert dieser Domains geben könnte, die sie maskieren wollen, glaube ich nicht, dass es machbar ist, selbst wenn der Host mir diese Fähigkeit geben würde. Ich werde ihnen nur nein sagen, wir können ihre Anfrage nicht erfüllen –

+0

Das ist wahrscheinlich zum Besseren. Sie würden sowieso von SE für doppelte Inhalte markiert werden. – Jules

Antwort

2

Ich glaube nicht, dass das möglich ist. Zu dem Zeitpunkt, zu dem Ihre serverseitige Sprache den Code erhält, wurde alles auf dem Webserver verarbeitet. Es gibt nichts umzuschreiben. Sie könnten dies technisch mit Javascript tun, aber es wäre nur visuell, würde es nicht tatsächlich die URL ändern. (Ich bin mir nicht sicher, ob Sie die Domain visuell ändern könnten, aber ich verstehe nicht, warum nicht. Ich habe es vorher mit anderen Teilen der URL gemacht). Hier ist, wie Sie das im Wesentlichen tun würden: https://developer.mozilla.org/en-US/docs/Web/API/History_API

Wenn dies jedoch getan werden muss, ist die web.config-Route der Weg zu gehen. Ich hatte eine Anwendung, wo, wenn Daten unter Verwendung bestimmter Formulare in der App aktualisiert wurden, ich die web.config ergreife und eine der Neuschreiben-Karten bearbeite.

Aber ich bin mir nicht sicher, dass das ist, was Sie brauchen. Wenn Sie möchten, dass die Domain www.JimsAutoShop.com nur Dateien von Ihrem Server zieht, bearbeiten Sie einfach den DNS, um auf Ihren Server zu zeigen. Das Umschreiben/Umleiten wird nicht benötigt. So sollen Sites funktionieren.

+0

Danke Leeish. In diesem Fall könnte es Tausende potenzieller Domains geben, für die meine Inhalte angezeigt werden sollen. Daher ist es nicht wirklich praktisch, die Informationen dort zu hosten. Ich bin mir nicht 100% ig sicher, warum sie das als Vorteil sehen, aber sie haben gefragt, also dachte ich, ich würde hier fragen, für den Fall, dass jemand von einer Art wusste, an die ich nicht gedacht hatte. Ich bin nur sehr zögerlich, die web.config-Datei routinemäßig zu bearbeiten, da ein kleines Missgeschick die meisten meiner Website zerstört. –

+4

Vielleicht verstehe ich das nicht genau, aber du kannst bobsite.com nicht besuchen und es als Facebook.com erscheinen lassen. Es funktioniert einfach nicht so. – Leeish

+0

Rechts. Ich bin mir nicht 100% ig sicher, warum diese Funktion auch für sie wichtig war. Ich nehme an, da "jim" ihr Kunde wäre, wollten sie versuchen, den Inhalt so aussehen zu lassen, als wäre er "Jims", aber ich werde mir darüber keine Sorgen machen. Danke allen –

Verwandte Themen