javascript - 当 .htaccess 重定向到 index.php 时,如果文件存在则检查纯 JS

标签 javascript .htaccess xmlhttprequest

我在 PHP 上创建了我自己的小型 CMS,所以在我的 .htaccess 中,我使用重定向到 index.php,就像这样

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

现在使用纯 JavaScript,我需要检查我的服务器上是否存在一些 HTML 文件,所以我尝试使用

var http = new XMLHttpRequest();
http.open('HEAD', 'http://path/to/myfile.html', false);
http.send();
console.log(http.status);

但是无论文件存在与否,我总是得到 200 状态

如我所见,原因是在我的 .htaccess 中重定向到 index.php

那么我怎样才能得到现有文件的正确状态呢?

最佳答案

由于您的 Javascript 代码使用 HEAD 方法,您可以跳过所有 HEAD 请求的 .htaccess 规则:

RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_METHOD} !HEAD
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
如果请求方法是 HEAD

RewriteCond %{REQUEST_METHOD} !HEAD 将跳过您的前端 Controller 规则。

关于javascript - 当 .htaccess 重定向到 index.php 时,如果文件存在则检查纯 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50115500/

相关文章:

javascript - 如何将监听器添加到音频元素以连续播放

javascript - 多个输入框 - alertifyjs/Jquery

.htaccess - 如何将 http url 重定向到 https url?

javascript - 使用 PureScript 和 Pulp 从服务器下载二进制文件的正确方法

javascript - 解析嵌套 json 的语法

javascript - 向原型(prototype)添加函数不起作用

javascript - 将 css 类添加到菜单项单击的下拉菜单中

javascript - 我可以向另一个域发出 XMLHttpRequest 吗?

.htaccess - 让我们在 Windows XP 上加密回退

php - .htaccess 不允许 $_GET 工作