Я недавно переместил свой проект codeigniter в Nginx. Он использует SSL, и я могу получить доступ к целевой странице сайта.
Тем не менее, это просто страница входа. Я не могу пройти через это. Всякий раз, когда я отправляю данные POST, он просто перенаправляет себя.
Я попытался print_r()
POST-данные, если они есть, и я могу их увидеть, но не более того (я использую ion auth).
Вот мой контроллер входа в систему:
public function login()
{
if($this->input->post()){
echo "Yow"; //this works if you put die() nex to it.
}
if($this->ion_auth->logged_in() && !$this->ion_auth->is_admin())
{
error_reporting(E_ALL);
ini_set('display_errors', 1);
die();
//echo "here"; die();
//redirect('dashboard'); //disabled upon further notice
redirect('directory');
} else if($this->ion_auth->logged_in() && $this->ion_auth->is_admin()){
redirect('admin');
}else {
$this->data['pagetitle'] = 'brunchwork | Login';
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required');
$this->form_validation->set_rules('password', 'Password', 'trim|required');
$msg = $this->session->flashdata('message');
$this->data['message'] = $msg['message'];
$this->data['alert_type'] = $msg['alert_type'];
if ($this->form_validation->run() === FALSE)
{
$this->render('member/login');
} else {
if($this->input->post('remember_me')){
$remember = 1;
} else {
$remember = 0;
}
//$remember = (bool) $this->input->post('remember_me');
$username = $this->input->post('username');
$password = $this->input->post('password');
if ($this->ion_auth->login($username, $password, $remember))
{
$sid = session_id();
if($sid) {
//session_start();
} else {
session_start();
}
//session_start();
//redirect('dashboard'); //disabled upon further notice
if($this->ion_auth->logged_in() && $this->ion_auth->is_admin())
{
//redirect('dashboard'); //disabled upon further notice
redirect('admin');
} else {
redirect('directory');
}
}
else
{
$_SESSION['message'] = $this->ion_auth->errors();
$this->session->mark_as_flash(array('message' => $_SESSION['message'], 'alert_type' => 'error'));
redirect('login');
}
}
}
}
И мой nginx conf:
server {
listen 80;
listen [::]:80;
server_name members.brunchwork.com www.members.brunchwork.com;
return 307 https://members.brunchwork.com$request_uri;
# return 301 https://$server_name$request_uri;
# root /home/dev/members.brunchwork.com/public_html;
# index index.html index.php;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name members.brunchwork.com www.members.brunchwork.com;
root /home/dev/members.brunchwork.com/public_html;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /home/dev/members.brunchwork.com/godaddy-certs/bundle.crt;
ssl_certificate_key /home/dev/members.brunchwork.com/godaddy-certs/members.brunchwork.com.key;
# Logging
error_log /home/dev/members.brunchwork.com/public_html/log/access_log;
access_log /home/dev/members.brunchwork.com/public_html/log/error_log;
location / {
# Check if a file or directory index file exists, else route it to index.php.
# try_files $uri $uri/ =404;
# try_files $uri $uri/ /index.php?/$request_uri;
# try_files $uri $uri/ /index.php;
rewrite ^(.*)$ /index.php;
# file doesn't exist, let CI handle it
if (!-f $request_filename) {
#rewrite ^(.*) /index.php?$1 last;
rewrite ^(.*)$ /$1.php;
}
}
location ~ \.php {
# try_files $uri $uri/ =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param SCRIPT_FILENAME /home/dev/members.brunchwork.com/public_html$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location ~ /\.ht {
deny all;
}
}
Что может быть причиной этого? Я смог это исправить вчера, когда еще не было настроено SSL, но я не могу найти, где я нашел решение, поэтому я здесь.
Любая помощь высоко ценится.