0

我使用 htaccess 来获取漂亮的网址...

但是现在,我不明白为什么 ajax 请求返回带有多个参数的“404 not found”。

  • htaccess 后面的 url:delete.php?id=1,2,3,4 完美运行

    htaccess 之后的 url:删除/1,2,3 但不起作用(错误 404)

访问:

  Options +FollowSymLinks
  RewriteEngine On

  RewriteCond %{SCRIPT_FILENAME} !-d
  RewriteCond %{SCRIPT_FILENAME} !-f

  RewriteRule ^delete/(\w+)$ ./delete.php?id=$1

和ajax代码:

  $('#delete').click(function () {
   var Checkboxes = new Array();

   i = 0;
   $("li input:checked").each(function () {
       Checkboxes[i] = $(this).val();

       i++;
   });

   $.ajax({
       type: "POST",
       url: "delete/" + Checkboxes, //<-problem is here maybe problem with htaccess and multiple value?
       success: function (msg) {
           alert("Data deleted: " + msg);
       }
   });

});

但是,我不明白问题到底出在哪里?

4

1 回答 1

1

正则表达式中的\w (wordcharacter) 是[a-z0-9A-Z_]不包含逗号的快捷方式。这就是为什么您的规则不匹配,1,2,3因此您会收到404错误消息。

如果您从以下位置更改重写规则:

   RewriteRule ^delete/(\w+)$ ./delete.php?id=$1

   RewriteRule ^delete/([a-z0-9A-Z,]+)$ ./delete.php?id=$1

它应该工作。

于 2013-04-28T16:55:34.820 回答