确定用户是键入地址还是单击了href

Ok so I have a basic website and the links on the page for about, contact and services load through ajax content from about.php, contact.php and services.php into a main div on my page. All works well.

The way I have it coded is when someone clicks, say, #about I have the following code:

  $.address.change(function(event) {  
      $('#main').load('../' + event.value + '.php');  
  });  
  $('a').click(function() {  
      $.address.value($(this).attr('href'));  
  });

and in about.php I have:

<?php
    // render form
    require("../templates/about_form.php");
?>

All works well, however lets say a crafty user types in domain.com/about.php then they just get served up the content of about_form.php without the rest of my page around it.

Can I determine if a user does this and if so redirect the page to domain.com#about ...

Any advice appreciated.

Wrap your existing pages with

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    /*page code goes here*/

}else
{
 header('Location: http://www.domain.com/#yoursection');
}

What this does is check if the request is an ajax request if not redirects the user to the proper page.