0

我重写了 htaccess,但不知何故,我的 ajax 调用从未到达控制器中的相应函数。相反,从 buglite 控制台,它会显示所有 HTML 代码。我正在写代码点火器,我对这件事完全筋疲力尽。请帮忙!

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
    </IfModule>

    <IfModule !mod_rewrite.c>       
        ErrorDocument 404 /index.php
    </IfModule> 

在视图中,附加了 javascript。

$('#logoutbtn').click(function(){

         $.ajax({
            type:"POST",
            url: "/fbcontroller/killsession",
            datatype: "json",
            success: function(){
                alert("Logout");
            }
         });
    });

buglite 中显示的错误。

POST /fbcontroller/killsession 404 Not Found 416ms  

供您参考,

我可以http://localhost/fbcontroller/killsession直接访问

4

1 回答 1

0

由于错误的正则表达式,这条规则似乎有问题:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]

它试图匹配 0 个或多个 literal 实例??不匹配

将该规则替换为:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
于 2013-10-16T10:20:44.130 回答