我在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状态我看到原因是我index.php
.htaccess
重定向
那么如何才能获得正确的文件状态?
答案 0 :(得分:1)
由于您的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]
如果请求方法为RewriteCond %{REQUEST_METHOD} !HEAD
, HEAD
将跳过您的前端控制器规则。