redirect chyba – přidává číslo portu za doménu při redirectu
- Michwuanquana
- Člen | 22
Zdravím,
začal jsem dělat jednu appku založenou na nette. Zatím pracuji na uživatelech, ale je to jen hrubý kód, zbytek je čisté nette.
Problém je v tom, že když někde volám redirect, tak to při přesměrování hodí za doménu port. např. www.example.com:80. To se nelíbí https a vyhazuje v prohlížeči chybu s certifikátem, nicméně program udělá, to co má, jen to přesměrování blbne. Nevíte čím to může být?
S pozdravem,
Michwuanquana
- Michwuanquana
- Člen | 22
kdyz odkomentuju v .htaccess tohle:
# use HTTPS
# RewriteCond %{HTTPS} !on
# RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
tak to začne hlásit too many request, přitom zacyklené to nemám
- Michwuanquana
- Člen | 22
tady pak je presenter
namespace App\Presenters;
use Nette;
use Nette\Application\UI\Form;
use App\Model\UserManager;
final class UserPresenter extends Nette\Application\UI\Presenter
{
private UserManager $userManager;
public function __construct(UserManager $userManager)
{
$this->userManager = $userManager;
}
public function renderDefault() {
if($this->userManager->isLoggined())
$this->redirect('Homepage:default');
else
$this->redirect('User:login');
}
public function renderLogout() {
if(!$this->userManager->isLoggined())
$this->redirect('User:login');
else {
$this->userManager->logout();
$this->flashMessage('Succesfully logged off!', 'success');
$this->redirect('User:login');
}
}
public function renderRegister() {
}
/**************************************************************************/
protected function createComponentRegisterForm(): Form {
$form = new Form;
$form->addText('name');
$form->addEmail('email');
$form->addPassword('pass');
$form->addPassword('passver');
$form->addSubmit('send');
$form->onSuccess[] = [$this, 'registerSucceeded'];
return $form;
}
protected function createComponentLoginForm(): Form {
$form = new Form;
$form->addEmail('email');
$form->addPassword('pass');
$form->addCheckbox("stay");
$form->addSubmit('send');
$form->onSuccess[] = [$this, 'loginSucceeded'];
return $form;
}
public function loginSucceeded(\stdClass $values): void {
$status = $this->userManager->login($values->email, $values->pass);
if( $status === true ) {
$this->flashMessage('Logged in!', 'success');
$this->redirect('Homepage:default');
} elseif( $status === -1 ) {
$this->flashMessage('Account not verified, please check email', 'danger');
$this->redirect('User:login');
} else {
$this->flashMessage('Wrong email or password', 'danger');
$this->redirect('User:login');
}
}
public function registerSucceeded(\stdClass $values): void {
if($this->userManager->emailExists($values->email)) {
$this->flashMessage('Account with this email exists', 'danger');
$this->redirect('User:register');
}
if( $values->pass != $values->passver) {
$this->flashMessage('Passwords do not match', 'danger');
$this->redirect('User:register');
}
if($this->userManager->register($values->email, $values->name, $values->pass)) {
$this->flashMessage('Registration was successful, please check your email for veriffication.', 'success');
$this->redirect('User:login');
} else {
$this->flashMessage('Something went wrong, please try it again.', 'danger');
$this->redirect('User:register');
}
}
}
- Michal Kumžák
- Člen | 106
Michwuanquana napsal(a):
kdyz odkomentuju v .htaccess tohle:
# use HTTPS # RewriteCond %{HTTPS} !on # RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
tak to začne hlásit too many request, přitom zacyklené to nemám
Asi ti to tam dává i ten port 80 a pak se ti cyklí.
- Michal Kumžák
- Člen | 106
Michwuanquana napsal(a):
Nevíte prosím jak to opravit?
A můžeš nám říct co používáš za prostředí? Máš to na lokále, například WAMP, nebo někde na hostingu, na jakém? Nebo používáš docker?
- Michal Kumžák
- Člen | 106
Michwuanquana napsal(a):
je to na endora.cz
A není možné, že někde v .htaccess děláš přesměrování i s portem?
- Michwuanquana
- Člen | 22
janpecha napsal(a):
A tohle by ti nepomohlo? https://www.endora.cz/…na-endora-cz
Díky! Funguje to