Как разместить приложение asp.net mvc в домене, который указывает на подпапку? - PullRequest
2 голосов
/ 14 января 2009

У меня есть следующий сценарий:

www.somedomain.com -> это указывает на папку на общем хосте, скажем / MyFolder1 www.otherdomain.com -> это указывает на другую папку на том же общем хосте, скажем / MyFolder2

С помощью asp.net mvc мои URL отображаются на:

www.somedomain.com / MyFolder1 / Action www.somedomain.com/MyFolder2/Action

Я (явно) не хочу, чтобы в моих URL-адресах были «MyFolder1» и «MyFolder2». Как мне решить это на asp.net MVC?

Я хочу иметь:

www.somedomain.com / Action www.somedomain.com/Action

Но мне нужно сохранить подпапки на IIS (или какое-то другое решение, которое позволяет мне иметь два сайта с разными доменами на одном хостинге).

Помощь очень ценится.

Спасибо

Ответы [ 3 ]

1 голос
/ 14 января 2009

Лучший способ справиться с этим IMO - использовать переписывание на уровне IIS. Я только что сделал это на сайте с помощью IIS 7 URL Rewrite. Если у вас не установлен этот модуль на вашем хост-провайдере, вы можете попробовать использовать один из других инструментов перезаписи URL. Но, например, на DiscountASP вы можете использовать переписывание URL IIS 7.

Сначала вам нужно указать все свои домены на вашем текущем сайте. Затем, когда вы загружаете инструмент: http://blogs.iis.net/bills/archive/2008/05/31/urlrewrite-module-for-iis7.aspx,, он предоставляет графический интерфейс для редактирования правил. В конечном итоге правила помещаются в ваш файл web.config. Вы хотите, чтобы ваши правила выглядели примерно так:

    <rewrite>
        <rewriteMaps>
            <rewriteMap name="otherdomain" />
        </rewriteMaps>
        <rules>
            <rule name="otherdomain" stopProcessing="false">
                <match url=".*" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="otherdomain.com" />
                </conditions>
                <action type="Rewrite" url="/site_folder/otherdomain/{R:0}" />
            </rule>
        </rules>
    </rewrite>

Если вы используете перезапись ISAPI, я, вероятно, скоро получу ее и для другого хоста, который я использую, который не поддерживает перезапись IIS

0 голосов
/ 20 мая 2009

Самое простое, что можно сделать, это создать поддомен на общем хосте. Что-то вроде app1.somedomain.com и app2.somedomain.com, субдомен отображается непосредственно в подкаталог, в котором находится приложение, и он становится корневым.

0 голосов
/ 15 января 2009

Мой хостинг-провайдер использует IIS 6 с ISAPI_Rewrite.

Работает нормально, www.somedomain.com/MyFolder1/Action становится www.somedomain.com/Action, как я хочу на странице входа. Но все Url.ActionLink () снова отображаются на www.somedomain.com/MyFolder1/Action, который я не хочу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...