Как убрать перенаправления в файле .htaccess которые мешают ajax?
Вот мой ajax запрос:
$.ajax({
url: '/' + url,
type: 'POST',
data: name + '_f=1' + str,
cache: false,
success: function (result) {
alert(result);
}
});
вот что у меня в .htaccess :
RewriteEngine on
RewriteRule /css/([^\/]+).css$ css/$1.css [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
в файле register.php куда ajax отправляет запросы:
else if ($_POST['register_f']) {
message('регистрация');
}
в итоге вместо фразы 'регистрация' я получаю html код со страницы index.php
success result содержит код страницы, а не ответ из php
я уточнил что проблема в том что в .htacccess прописано все запросы редиректить на одну единственную страницу - главную, вот и вопрос, как мне исправить это? может добавить какие то исключения, но как?
Ответы (1 шт):
Последняя строчка в файле .htaccess, вот эта директива RewriteRule ^(.*)$ index.php?$1 [L,QSA], отвечает за редирект, она переписывает любые запросы на index.php. Но условия перед ней, указывают на то, что она будет выполняться только если запрос будет идти к файлу -f или директории -d, которые физически не существуют на сервере. То есть в вашем случае почему то при запросе не видно файла register.php. Сделайте 2 вещи: во первых, проверьте переменную url, которую вы вставляете в путь запроса и весь путь запроса целиком, возможно, там что-то неправильно, или не нужен первый слэш. Во вторых, проверьте лежит ли физически этот файл в директории на сервере куда вы обращаетесь с запросом.
Надеюсь что-то из этого вам поможет!)