0

私はきれいなURLにhtaccessを使用しています...

しかし今、ajaxリクエストが複数のパラメータで「404 not found」を返す理由がわかりません。

  • htaccess の背後にある URL: delete.php?id=1,2,3,4 は完全に機能します

    htaccess の後の url : delete/1,2,3 でも動作しません (エラー 404)

htaccess:

  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,3404エラーが発生します。

書き換えルールを次のように変更した場合:

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

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

それはうまくいくはずです。

于 2013-04-28T16:55:34.820 に答える