Семантические URL с точками в .NET

25
задан Community 23 May 2017 в 11:54
поделиться

6 ответов

Если вы используете .NET 4.0 и IIS 7+, вы можете установить этот флаг в разделе system.web вашего web.config, и он будет разрешен:

<httpRuntime relaxedUrlToFileSystemMapping="true" />

Я тестировал его, и он работает. Хаак дает объяснение этому.

24
ответ дан 28 November 2019 в 21:42
поделиться

Все после '.' расширения файла. Если то расширение не будет отображено на ASP.NET, оно не будет передано к обработчику ASP.NET. IIS ищет статический файл вместо этого. Следовательно 404. Если это ничего не добавляет (и трудно видеть, как это было бы), я предлагаю разделить его.

8
ответ дан dpurrington 28 November 2019 в 21:42
поделиться

Похож на IIS, не мог бы знать, как обработать запрос с пустым расширением.

Щелчок правой кнопкой по веб-сайту и выбирают "Properties". Нажмите "Configuration..." на вкладку "Home Directory". Посмотрите на "Расширения Приложения" и попытайтесь добавить пустое расширение или подстановочное расширение.

0
ответ дан Robert Wagner 28 November 2019 в 21:42
поделиться

Вы не должны помещать точные пользовательские поиски в строку запроса как этот..., Вы должны UrlEncode их. Это решит проблему.

-2
ответ дан Timothy Khouri 28 November 2019 в 21:42
поделиться

В окнах имена файлов не могут закончиться a'.', я думаю, что все проблемы происходят оттуда, т.е. IIS не знает, что сделать с ним, таким образом, это никогда не добирается до обработчика ошибок ASP.NET и получает дескрипторы IIS по умолчанию 404 страницы.

Большинство поисковых систем ( хорошо Google так или иначе ) исключает пунктуацию из запросов, и я думаю, что Ваш должен также.

РЕДАКТИРОВАНИЕ: Это падает, потому что это не имеет никакого типа файла, даже сайт Microsoft запинается за взгляд и падает http://www.microsoft.com/en/us/fallover . но можно изменить ошибочные файлы по умолчанию (живой где-нибудь как C:\WINDOWS\help\iisHelp\common) или изменить его полностью.

Проверяют этого: Настраивающие Пользовательские сообщения об ошибках (IIS 6.0)

-2
ответ дан inspite 28 November 2019 в 21:42
поделиться

Когда конечный период не имеет значения (как в случае https://stackoverflow.com/questions/tagged/etc. ), вы можно использовать модуль перезаписи URL-адресов IIS для удаления конечных точек.

Шаблон : ^ (. * [^.]) (\. +) $
Перезаписать URL: {R: 1}

Это не поможет когда отбрасывание точки не является вариантом, или есть точки в конце сегментов промежуточного пути, но для очень реального случая использования работы с периодами, прикрепленными к URL-адресам с помощью алгоритмов автоматического связывания, это может помочь.

1
ответ дан 28 November 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: