Сайт разделен на бекэнд и фронтэнд, общение происходит посредством аякс запросов. Используется единая точка входа, для фронта index.html а для обработчика бека api.php
Я не мастер составлять .htaccess, собрал по кусочкам:
AddDefaultCharset utf-8
Options -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^\frontend/scripts/*
RewriteCond %{REQUEST_URI} !^\frontend/styles/fonts/*
RewriteCond %{REQUEST_URI} !^\frontend/images/*
# if it is ajax request
RewriteCond %{HTTP:X-Requested-With} XMLHttpRequest
RewriteRule . api.php [L]
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.html
При такой раскладке все всегда работает в firefox'e, в хроме начинает работать если отключить кеш в панеле разработчиков или принудительно к каждому аякс запросу в конце добавлять слеш: site.ru/article/21/ причем запрос site.ru/article/21/?q=query не работает.
Не работает, это когда вместо ожидаемых json данных в ответе приходит страница index.html .
Как исправить ситуацию, чтоб аякс запрос корректно перенаправлялся на api.php в любом браузере?