Я несколько лет назад создал веб-сайт ASP.NET с базой данных, который использует одну страницу APSX для отображения всех страниц сайта. Таким образом, все URL-адрес сайта в следующем формате:Плюс в строке запроса для сайта ASP.NET
/main.aspx?page=Page+Title+One
/main.aspx?page=Another+Article+Title
/main.aspx?page=Third+Page
страница main.aspx получает строку запроса данных (страница + Название + Один, например) и использует его в качестве ключа, чтобы потянуть соответствующую статью содержимого из базы данных SQL-сервера. Фактическое название страницы хранится в db с пробелами вместо плюсов (например, «Page Title One»).
Плохое решение пойти со знаком + в качестве разделителя слов в строке запроса URL вызывает множество проблем с поисковыми системами в последнее время (дублирование контента и т. Д.), Поэтому я хочу исправить его, но без изменения URL-адресов ,
То, что я хочу сделать, это когда поисковик или посетитель пытается посетить неправильный URL пропуская + знаки и имеющие пробелы вместо этого, например:
/main.aspx?page=Page Title One
Я хочу сделать 301 постоянный редирект:
/main.aspx?page=Page+Title+One
чтобы быть в состоянии сделать это мне нужно проверить, если значение строки запроса имеет свои плюсы и пробелы, однако, когда я получаю значение с Request.QueryString [ «страницы»], даже если строка фактической quesry имеет плюсы в нем я все равно получаю строку с пробелами «Страница Title One».
Сайт работает на IIS6/Win 2003
Как я могу это сделать?
Мои URL-адреса всегда использовали знак «плюс» только вместо белых пробелов или% 20, однако я вижу страницы в кеше в Google, похожие на эти 2: /main.aspx?page=KW1 KW2 и /main.aspx?page=KW1% 20KW2, которые являются неправильными и вызывают дублирование проблем с содержимым. Теперь я хочу, чтобы они соответствовали правильному URL-адресу, который является /main.aspx?page=KW1+KW2. –
Это в значительной степени то, что я объяснял. Не уверен, что было непонятно, поэтому добавили пример кода, который, надеюсь, объяснит. –
Спасибо, Джон, это именно то, что мне нужно :). Как пометить вопрос как ответ? –