Вопрос по asp.net-mvc-routing, iis-7, wordpress, url-rewriting – Правила перезаписи URL для WordPress IIS в MVC3 +

3

У меня есть веб-сайт ASP.NET MVC3, расположенный по адресуhttp://mydomain.com/mymvcapp/, Однако корень веб-сайта (mydomain.com) содержит сайт WordPress, работающий на PHP. Поэтому я добавил следующее правило перезаписи URL IIS, чтобы WordPress работал правильно с помощью механизмов перезаписи:

    <rewrite>
        <rules>
            <rule name="wordpress" patternSyntax="Wildcard">
                <match url="*" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php"/>
            </rule>     
        </rules>
    </rewrite>

Таким образом, с этим правилом мои WordPress функционируют отлично, однако переписывание MVC НЕ работает. Как бы я изменил это правило, чтобы и WordPress, и MVC (в папке / mymvcapp /) прекрасно сосуществовали?

Ваш Ответ

2   ответа
4

Разобрался сам. Regex, вероятно, одна из самых мощных, но сложных / запутанных технологий. Но в этом случае флаг patternSyntax был установлен на Wildcard, а не на Regex, что вызвало у меня замешательство. Надеюсь, что это поможет кому-то еще там! знак равно

    <rewrite>
        <rules>
            <rule name="wordpress" patternSyntax="Wildcard">
                <match url="*" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{PATH_INFO}" pattern="/mymvcapp/*" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php" />
            </rule>     
        </rules>
    </rewrite>
3

This is one of the very few posts anywhere that talks about making WordPress and ASP.NET coexist nicely in an IIS setup. So Kudos for that.

Я думал опубликовать это как комментарий к вашему первоначальному вопросу или ответу, но я решил написать & quot; ответ & quot; только потому, что это честный вопрос, и мне нужны некоторые возможности форматирования.

У меня есть несколько приложений ASP.NET, работающих на сайте. В частности, на корневом веб-сайте работает приложение MVC4.

Поскольку я не могу установить WordPress в корневом каталоге, я планировал разместить его в своей папке приложения.http://mydomain.com/wordpress/ а затем есть правило перезаписи URL, которое делает следующее (используя peudo-код):

blog.mydomain.com/{path} --> mydomain.com/wordpress/{path}

Я только привел в замешательство этот подход и не добился успеха, используя довольно постоянные ссылки, иногда попадая в циклы перенаправления, а иногда нарушая ссылки на файлы .css, страницы администратора и т. Д.

Вы когда-нибудь задумывались об этом, то есть вместо этого использовали WordPress в качестве подпапки и выполняли перезапись URL-адресов для субдомена?!?!

Похожие вопросы