htaccess与ajax脚本冲突

时间:2013-09-16 17:50:59

标签: javascript html ajax .htaccess conflict

我在js中使用pushstate事件,因此重写了我的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 个答案:

答案 0 :(得分: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]