У меня проблема с правилами перезаписи URL.Я использую UrlRewritingNet.UrlRewriter Dll для перезаписи URL на веб-сайте asp.net.Я использовал имя правила в качестве «Расширенного» и Другое имя правила в качестве DefaultRule, которое используется для любой страницы профиля пользователя (т.е. страницы профиля любого пользователя).Когда я ввел имя пользователя как " AdvancedMachinesTools ".
Правила как указано ниже: -
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="Login" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
<rewrites>
<add name="advanced" virtualUrl="^~/advanced" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/advancedSearch.aspx" ignoreCase="true" />
<add name="DefaultRule" virtualUrl="^~/(.*)" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/UserProfile.aspx?uname=$1" ignoreCase="true"/>
</rewrites>
</urlrewritingnet>
Я получил сообщение об ошибке «Файл не существует» Я наконец-то написал DefaultRule в файле web.config.
Как я это решил ...?
РЕДАКТИРОВАНИЕ
Примеры Предположим, что URL моего сайта: www.abcd.com
1) Для расширенного правила я написалURL, подобный этому www.abcd.com / advanced
Правило:
<add name="advanced" virtualUrl="^~/advanced" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/advancedSearch.aspx" ignoreCase="true" />
2) для пользовательского правила по умолчанию для предположения имени пользователя: AdvancedEyecare использовало правило по умолчанию
<add name="DefaultRule" virtualUrl="^~/(.*)" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/UserProfile.aspx?uname=$1" ignoreCase="true"/>
При вводе URL-адреса, например http://www.abcd.com/AdvancedEyecare
Затем я получил сообщение об ошибке «Файл не существует», поскольку правило использовало 1 расширенное правило, а не пользовательское правило по умолчанию.Я хочу вызвать userrule вместо 1 расширенного правила.Как можно это решить?