我正在开发一个 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({ 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);
}
});
这是您问题的可能解决方案,让我知道它是否有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句