我为htaccess写了一个简单的代码来防止.php扩展。但是从那时起,我的ajax代码无法正常工作。这是我的.htaccess代码
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)\.php$ /$1 [R,L]
RewriteRule ^(.*?)/?$ /$1.php [NC,END]
在删除第四行时,ajax起作用了,但是localhost / sample / hello.php和localhost / sample / hello这两个URL都起作用了! (因为这不是故意的)
我的示例ajax脚本
$.post('BaseClass.php', {
action: 'login'
},
我在同一目录中有BaseClass.php文件 感谢您的提前帮助
答案 0 :(得分:0)
您的带有.php扩展名的htaccess阻止请求尝试使用不带扩展名的请求
喜欢
NA
答案 1 :(得分:0)
AJAX调用和常规页面请求之间的HTTP请求没有区别。唯一的区别是,一个由用户完成(常规页面请求),而另一个由浏览器在后台使用JavaScript(AJAX)完成。
因此,您不能使用.htaccess
规则来禁用PHP脚本,但可以对AJAX调用启用它们,因为它们实际上是同一回事。如果要确保仅将PHP脚本作为AJAX调用来调用,请检查特定的请求变量(例如if (isset($_POST["ajax_action"])) { ... }
)。但要注意:这不是一种安全机制,因为任何人都可以阅读JavaScript源代码并手动提出AJAX请求。