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]
Другие вопросы по тегам