htaccess в конфликте со скриптом ajax
Я использую событие pushstate в js и поэтому переписал свой htaccess, чтобы перенаправить каждый путь в моем URL в index.php:
# html5 pushstate (history) support:
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.php [L]
</ifModule>
это работает очень хорошо... однако я создал сценарий ajax, где я проверяю, доступны ли определенные изображения.
function loadPicture(selector, file, errorf){
$.ajax({url: file,type:'HEAD',error:function(){
$(selector).attr('src', errorf);
$('#notavailable').show();
}, success:function(){
$(selector).attr('src', file);
if($('#notavailable').is(':visible')){
$('#notavailable').hide();
}
}});
};
Этот скрипт больше не работает, и я понял, что это из-за.htaccess.
Сейчас я действительно не эксперт в htaccess, мне очень трудно это понять, и мне определенно может понадобиться помощь в этом вопросе. может быть, кто-то может сказать мне, как я могу перенаправить каждый путь верхнего / корневого уровня (например, domain.com/somethingtoredirect) к моему index.php, но сделать исключения для определенной или даже для каждой папки (domain.com/thisfoldershouldnotberedirectedByHtAccess)
Я думаю, что это решит мою проблему, так как проверяемые изображения хранятся не на высоком уровне, а в подпапках.
Любая помощь высоко ценится.
Римский
1 ответ
Просто исключите папку с изображениями из вашего правила catch all:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/dummy-image-folder/ [NC]
RewriteRule ^ index.php [L]