У меня есть несколько страниц на моем веб-сайте ASP.NET MVC 3 (не то, чтобы технология здесь имела значение), где я отображаю определенные URL-адреса в теге на странице. , так что мой JavaScript (хранящийся во внешнем файле) может выполнять вызовы AJAX к серверу.
Что-то вроде этого:
<html>
...
<body>
...
<script type="text/javascript">
$(function() {
myapp.paths.someUrl = '/blah/foo'; // not hardcoded in reality, but N/A here
});
</script>
</body>
</html>
Теперь на стороне сервера большинство этих URL-адресов защищены атрибутами, указывающими, что:
] a) Доступ к ним возможен только с помощью AJAX (например, XmlHttpRequest)
b) Доступ к ним возможен только с помощью HTTP POST (поскольку он возвращает JSON — безопасность)
Проблема в том, по какой-то причине] , боты сканируют эти URL-адреса и пытаются выполнить для них HTTP GET, что приводит к ошибке 404.
У меня сложилось впечатление, что боты не должны пытаться сканировать javascript. Так как же они получают эти URL-адреса?
Можно ли как-то помешать им это сделать?
Я не могу переместить эти переменные URL-адреса во внешний файл, потому что, как следует из комментария к приведенному выше коду, я отображаю URL-адреса с помощью серверного кода (это должно быть выполнено на реальной странице).
По сути, я добавил маршрутизацию на свой веб-сайт по HTTP 410 (исчез) по этим URL-адресам (если это не AJAX POST). Что действительно раздражает, потому что добавляет еще один маршрут в мою уже запутанную таблицу маршрутов.
Есть советы/предложения?