【问题标题】:.htaccess with Ajax datatables.htaccess 与 Ajax 数据表
【发布时间】:2017-05-02 22:23:48
【问题描述】:

我正在开发一个 php 项目,我在其中使用带有 ajax 的数据表,在我添加 .htaccess 文件以从链接中删除 .php 并重命名某些文件夹之前,一切都运行良好

 Options +FollowSymLinks
 RewriteEngine on
 # pass-through if another rewrite rule has been applied already
 RewriteCond %{ENV:REDIRECT_STATUS} 200
 RewriteRule ^ - [L]

 RewriteRule ^share/(.*?)(\.php)?$ /reports/$1 [R=307,NC,L]

 RewriteRule ^(.+)\.php$ /$1 [R=307,NC,L]

 RewriteCond %{DOCUMENT_ROOT}/share/$1.php -f
 RewriteRule ^reports/(.*)$ share/$1.php [L,NC]

 RewriteRule ^reports/(.*)$ share/$1 [L,NC]

 RewriteCond %{REQUEST_FILENAME}.php -f
 RewriteRule ^(.+?)/?$ $1.php [NC,L]

我使用 redirect_status 200 的原因是我不想添加 END,因为我的 apache 版本是 2.2,我不想升级它 ,任何想法出了什么问题?

编辑:在 ajax 调用的 php 中打印 $_REQUEST

   Array
 (
    [draw] => 1
[columns%5B0%5D%5Bdata%5D] => 0
[columns%5B0%5D%5Bname%5D] => 
[columns%5B0%5D%5Bsearchable%5D] => true
[columns%5B0%5D%5Borderable%5D] => true
[columns%5B0%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B0%5D%5Bsearch%5D%5Bregex%5D] => false
[columns%5B1%5D%5Bdata%5D] => 1
[columns%5B1%5D%5Bname%5D] => 
[columns%5B1%5D%5Bsearchable%5D] => true
[columns%5B1%5D%5Borderable%5D] => true
[columns%5B1%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B1%5D%5Bsearch%5D%5Bregex%5D] => false
[columns%5B2%5D%5Bdata%5D] => 2
[columns%5B2%5D%5Bname%5D] => 
[columns%5B2%5D%5Bsearchable%5D] => true
[columns%5B2%5D%5Borderable%5D] => true
[columns%5B2%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B2%5D%5Bsearch%5D%5Bregex%5D] => false
[columns%5B3%5D%5Bdata%5D] => 3
[columns%5B3%5D%5Bname%5D] => 
[columns%5B3%5D%5Bsearchable%5D] => true
[columns%5B3%5D%5Borderable%5D] => true
[columns%5B3%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B3%5D%5Bsearch%5D%5Bregex%5D] => false
[columns%5B4%5D%5Bdata%5D] => 4
[columns%5B4%5D%5Bname%5D] => 
[columns%5B4%5D%5Bsearchable%5D] => true
[columns%5B4%5D%5Borderable%5D] => true
[columns%5B4%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B4%5D%5Bsearch%5D%5Bregex%5D] => false
[columns%5B5%5D%5Bdata%5D] => 5
[columns%5B5%5D%5Bname%5D] => 
[columns%5B5%5D%5Bsearchable%5D] => true
[columns%5B5%5D%5Borderable%5D] => true
[columns%5B5%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B5%5D%5Bsearch%5D%5Bregex%5D] => false
[columns%5B6%5D%5Bdata%5D] => 6
[columns%5B6%5D%5Bname%5D] => 
[columns%5B6%5D%5Bsearchable%5D] => true
[columns%5B6%5D%5Borderable%5D] => true
[columns%5B6%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B6%5D%5Bsearch%5D%5Bregex%5D] => false
[columns%5B7%5D%5Bdata%5D] => 7
[columns%5B7%5D%5Bname%5D] => 
[columns%5B7%5D%5Bsearchable%5D] => true
[columns%5B7%5D%5Borderable%5D] => true
[columns%5B7%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B7%5D%5Bsearch%5D%5Bregex%5D] => false
[columns%5B8%5D%5Bdata%5D] => 8
[columns%5B8%5D%5Bname%5D] => 
[columns%5B8%5D%5Bsearchable%5D] => true
[columns%5B8%5D%5Borderable%5D] => true
[columns%5B8%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B8%5D%5Bsearch%5D%5Bregex%5D] => false
[columns%5B9%5D%5Bdata%5D] => 9
[columns%5B9%5D%5Bname%5D] => 
[columns%5B9%5D%5Bsearchable%5D] => true
[columns%5B9%5D%5Borderable%5D] => true
[columns%5B9%5D%5Bsearch%5D%5Bvalue%5D] => 
[columns%5B9%5D%5Bsearch%5D%5Bregex%5D] => false
[order%5B0%5D%5Bcolumn%5D] => 0
[order%5B0%5D%5Bdir%5D] => asc
[start] => 0
[length] => 10
[search%5Bvalue%5D] => 
[search%5Bregex%5D] => false
[_] => 1493734100074
  )

因此 php 文件无法读取 $_REQUEST 的正确值,从而搞砸了

【问题讨论】:

    标签: php ajax apache .htaccess


    【解决方案1】:

    因为您已经从扩展中删除了 .php,并且您可能正在代码库中使用如下代码 -

           $.ajax({ url: '/your/site',
         data: {action: 'test.php'},
         type: 'post',
         success: function(abc) {
                      alert(xyz);
                  }
           });
    

    尝试从 ajax 调用中删除 .php,您的代码应该是这样的

      $.ajax({ url: '/your/site',
     data: {action: 'test'},
     type: 'post',
     success: function(abc) {
                  alert(xyz);
              }
       });
    

    这是解决您问题的可能方法,如果可行,请告诉我。

    【讨论】:

    • 刚刚发现我使用的 get 类型与请求混淆
    猜你喜欢
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    相关资源
    最近更新 更多