2012-12-27 16 views
5

Tôi đang nhận được đường dẫn /#! được yêu cầu thường xuyên trên blog của mình và tôi đã tự hỏi tại sao điều này là (vì nó không khớp với bất kỳ URL/tài nguyên nào trên blog của tôi). Tác nhân người dùng nói rằng các trình duyệt IE7 luôn yêu cầu điều này nhưng từ nhiều địa chỉ IP khác nhau. Tôi đang cố gắng giải quyết nếu tôi có thể bỏ qua điều này hoặc nếu tôi cần làm điều gì đó về nó. Tôi đặc biệt muốn biết những điều sau đây:Đường dẫn url '/ #!' đặc biệt hoặc khai thác?

  • Đây có phải là một loại URL đặc biệt cho một số trình duyệt web/máy chủ web nhất định không?
  • Được kết nối với một khai thác cụ thể?

Tôi có thể bỏ qua nó không?

Nếu trang web có liên quan của nó được lưu trữ trong cửa sổ xanh và chạy trên MVC4.

Trả lời

7

Đây là hash-bang URL. Chúng được sử dụng bởi một số ứng dụng web AJAX, như Facebook và Twitter. Google có một số special treatment cho họ, để làm cho các trang web AJAX thông thường không thể thu thập dữ liệu có thể thu thập dữ liệu.

Tuy nhiên, nếu trang web của bạn không chạy ứng dụng sử dụng chúng, bạn không nên nhìn thấy chúng. Và bạn chắc chắn không nên nhìn thấy chúng ở phía máy chủ, vì toàn bộ vấn đề là mọi thứ theo sau một # trong URL là fragment identifier và phải bị đại lý người dùng loại bỏ trước khi yêu cầu URL từ máy chủ.

Chỉnh sửa: Nếu tôi phải đoán những gì đang yêu cầu URL như vậy, tôi muốn nói đó có thể là một số bot lỗi. Thực tế là nó dường như giả vờ là IE cho thấy rằng nó có thể không được lên đến bất cứ điều gì tốt; có lẽ đó là một spambot của một số loại. Dù sao, các yêu cầu như vậy rất có thể vô hại, và bạn có thể bỏ qua chúng. Nếu nó làm cho bạn thấy khá hơn, bạn luôn có thể thiết lập một quy luật viết lại từ chối rõ họ, một cái gì đó như:

RewriteRule \x23 - [F] 

này nên từ chối các yêu cầu đối với các URL có chứa các nhân vật # với một lỗi 403 Forbidden.

+0

Ừ mà làm cho rất nhiều ý nghĩa, tôi khá bối rối tại sao này đã được yêu cầu từ máy chủ mặc dù. Có lẽ đây là một vấn đề cụ thể với IE7 và một trong những plugin tôi chạy (twitter, google + và disqus, có thể là sau này) –

2

Vâng, # là một neo hợp lệ chỉ có nghĩa là "trang". Bạn cũng có thể tạo '!' neo, ví dụ:

<!-- some html here --> 
<a href="#!">Click me!</a> 
<!-- lots more html --> 
<div id="!"> 
    Wooaaaah! 
</div> 

Vì vậy, tôi đoán là bạn có thể yên tâm bỏ qua nó ... nhưng đó chỉ là một phỏng đoán;)