好死不死,非要用原始的submit提交表单。
这时问题来了,后台php状态返回404。
而且感觉一开始是200,然后接着404。
原因很简单,我这个php文件引用了另外一个文件用于获取用户登录状态。
一开始我以为是引用的路径不对。
事实上,当我把报错提示打开之后,发现如果路径真的不对的话,就会在浏览器上看到php的报错,但是并没有报错。
显然,404是nginx弄出来的。
那么肯定是nginx的config不对,然而,如果我用ajax方法来提交,就不会有问题。
看了半天nginx及vhost的conf,看来看去,看不出个所以然来。
从逻辑上说,这有点像后端的防盗链或反跨域机制。
然而,一般的nginx防盗链方案怎么也得定义一个$invalid_referer。这个问题里似乎并没有这种事。
从php跳到php的时候也不会有问题,就是html跳php就有问题,不管是_self还是_blank,post还是get。
有几个地方可疑,一是本站的conf中拦截的location最后有一个:
location ~ /\.
{
deny all;
}
按说这个意思是\后直接带个.的方式,直接拒绝访问。但是这和require没关系啊。
还有一个地方可疑
enable-php.conf文件
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
很显然404就是它弄出来的,但这也没错啊。
照这架式,就是fastcgi.conf的问题。
这个问题先留着吧。其实基本上不也不需要非ajax的提交。
现在做事,太容易被小问题牵绊了,还是要直奔目的而去。