我正在使用Yii 2.0.12和php 7.1。问题是,当我将SSL证书添加到我的网站时,当我第二次使用POST
操作来验证表单时,它会引发错误。错误是Unable to verify your data submission.
我的意思是:例如,我去联系页面并第一次进行POST
操作。一切都好。当我第二次执行所有下一次操作时,会引发错误。
但是,如果我每次都向site.com/contacts?test=1
之类的页面添加随机参数,一切都会很好。
我猜是问题在于会话验证(也许是csrf
)。
我从缓存文件中清除了.htaccess:
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine on
# SSL redirect
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ frontend/web/$1 [L]
</IfModule>
# Deny accessing below extensions
<Files ~ "(.lock|.git)">
Order allow,deny
Deny from all
</Files>
# Deny accessing dot files
RewriteRule (^\.|/\.) - [F]
和
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
我还从session
中删除了common.php
:
// 'session' => [
// 'class' => 'yii\web\DbSession',
// 'db' => 'db',
// 'sessionTable' => 'session',
// ],
我还从httpCache
中删除了behaviors()
。
另一方面,在localhost
上我没有这个问题。仅在添加SSL之后。我的网络托管包括php模块:
ctype, curl, dom, fileinfo, filter, ftp, gd, hash, iconv, imagick, intl, json, mbstring, mcrypt, mysqli, opcache, openssl, pdo, pdo_mysql, session, simplexml, soap, sockets, timezonedb, tokenizer, xml, xmlreader, xmlwriter, xsl, zip
Apache:
autoindex_module, cgi_module, expires_module, headers_module, php_module, rewrite_module,
有什么问题吗?