Наш веб-сайт DNN переписывает наш SKU продукта, который является частью строки запроса при переходе от страницы фильтра продукта к странице подробного просмотра продукта.
К сожалению, некоторые из наших продуктов имеют косую черту в SKUнапример, BD0002 / DSDS
URL-адрес, на который мы переходим, - https://dnndev.me/Product-View/sku/BD0002/DSDS,, но DNN отключит и перезапишет последнюю часть URL-адреса и приведет к следующемуURL: https://dnndev.me/Product-View/sku/BD0002
Я попытался добавить следующий код Regex в раздел настроек SEO DNN, чтобы игнорировать переписывание страницы, но он делает то же самое.
sku/(.*)/(.*)
Я также заметил, что в настоящее время наш веб-сайт пишет sku без знака = для строки запроса.В настоящее время это будет / sku / , а не ? Sku = Я обнаружил, что могу изменить это, когда добавлю | / sku |в регулярном выражении Keep in Querystring.
В файле web.config я установил расширенный формат URL.Я не хочу менять это на HumanFriendly, поскольку это нарушает наш модуль.
Наша страница фильтра продуктов, которая содержит ссылки на использование Product View, используетшаблон усов с HttpUtility.UrlEncode для QueryStringSKU:
<a href='<%=DetailedPageRedirectLink%>/sku/{{QueryStringSKU}}'>More Info</a>
Затем у нас есть модуль подробного представления продукта, который прослушивает QueryString.В прошлом я пытался использовать кодирование и декодирование, но DNN делал свое дело и игнорировал часть кодирования и декодирования, поэтому я написал эту сумасшедшую часть кода, которая удаляет часть URL, которая не является частью SKU.
string rawurlfromrequest = Request.RawUrl;
string checkifquerystringexist = Request.QueryString["sku"];
if(checkifquerystringexist != null)
{
var cleanSKU = rawurlfromrequest.Split(new[] { "sku/" }, StringSplitOptions.None)[1];
decodeprodCode = cleanSKU.Split(new[] { "&" }, StringSplitOptions.None)[0];
decodeprodCode = decodeprodCode.Split(new[] { "/search" }, StringSplitOptions.None)[0];
decodeprodCode = decodeprodCode.Split(new[] { "?fbclid=" }, StringSplitOptions.None)[0];
decodeSKU = HttpUtility.UrlDecode(decodeprodCode);
}
if (!string.IsNullOrWhiteSpace(decodeSKU) && IsEditable == false)
{
LoadProductDetails(decodeSKU);
}
Итак, я хотел бы знать, как я могу разрешить DNN переписывать только первую часть URL, а не часть SKU строки запроса, если она содержит косую черту?
Я нашел эти ссылки: https://www.dnnsoftware.com/answers/disable-friendly-url-for-one-page
https://www.dnnsoftware.com/forums/threadid/542568/scope/posts/how-can-one-turn-off-friendly-urls-url-rewriting-etc-in-dnn-8