Может ли обратная косая черта быть правильно закодирована в URL с переписыванием URL?
Я работаю над проектом ASP.NET MVC2. Проблема в том, что строка, которая будет переписана в URL, содержит специальный символ, такой как обратная косая черта или знак вопроса, URL-адрес будет неправильным, даже если я его закодировал раньше.
Например:
- У меня есть идентификатор продукта p001\2-2.
- Я закодировал его в " p001% 5C2-2"
- URL
http://domain.com/Product/p001%5C2-2
отвечает на ошибку HTTP 400 - неверный запрос.
Как я могу получить его правильно?
Ответы
Ответ 1
Попробуйте использовать Html.Encode, чтобы решить вашу обратную косую черту.
Если обратная косая черта является единственным "специальным" символом в вашем id, вы можете использовать Replace ( "% 5C", "\" ).
Вы проверили свою маршрутную карту? должен быть маршрут вроде
Продукт/{prodictID}
Ответ 2
У меня была аналогичная проблема с% 2F в моих URL-адресах. Попробуйте добавить флаг nOrmalize в свой rewriteRule.
Пример с нормализацией флага "O" жирным шрифтом:
RewriteRule ^ (. *) index.html? $http://www.yoursite.com/ $1 [R = 301, L, O]