Con que no te va bien con el AJAX te refieres a que te niega el acceso, ¿verdad? Ciertamente he tenido este mismo problema tuyo mil veces, y sigo buscando respuestas.
Una solución puede ser comprobar que la petición se hizo mediante AJAX:
Código PHP:
Ver originalif ( empty($_SERVER['HTTP_X_REQUESTED_WITH']) OR
strtolower($_SERVER['HTTP_X_REQUESTED_WITH'] != 'xmlhttprequest') ) {
# code...
}
Llegué a la conclusión de que este método no es 100% seguro. Quizá alguien que sepa más en seguridad que yo pueda ayudarte.
Ayer mismo encontré un fragmento de código al que no le presté mucha atención, que evitaba accesos mediante AJAX entre diferentes dominios. Acabo de ver su importancia gracias a tu pregunta jeje Si lo encuentro edito y te lo muestro.
En cuanto al .htaccess, como bien te he dicho, nunca he sabido usarlo bien, tendrás que buscar en Google o esperar a que alguien responda. Lo mío no es la seguridad (hasta cierto punto básico, claro).
Saludos.
EDITO: se me olvidó decirte que WordPress (supongo que entre otros CMS) utiliza un sistema de tokens, códigos que sólo duran X periodo de tiempo y se usan como claves a la hora de hacer la petición. Busca sobre ello también, mis conocimientos no dan para más.