У меня есть сайт ASP.Net WebForms (работает на Kentico CMS, если это имеет какое-либо значение), где URL-адрес в действии формы отображается как относительный URL-адрес на каждой странице.
Обычно я ожидаю, что действие формы будет абсолютным путем.
Например, если URL-адрес страницы равен /foo/bar/my-page
, то я ожидаю, что действие формы будет /foo/bar/my-page
, но на самом деле оно отображается как ./my-page
.
Это оказывает негативное влияние на страницы, которые используют «дружественные URL-адреса» путем перезаписи в Kentico, где эти URL-адреса имеют заполнители (например, /products/{productcode}/{productname}
).
Kentico незаметно переводит значения заполнителей в параметры QueryString, но из-за описанной выше проблемы с относительным URL-адресом WebForms добавляет параметры запроса к относительному URL-адресу.
то есть /products/123/my-product
должно иметь действие формы /products/123/my-product
, но вместо этого устанавливается в ./my-product?productcode=123&productname=my-product
, что приводит к тому, что в параметрах запроса существуют два экземпляра productcode и productname... и обратные передачи на этой странице прерываются.
Что могло бы вызвать это?