Převedení webu na HTTPS a problém u redirect formulářů
- iru
- Člen | 110
Převedla jsem celý web na HTTPS pomocí htacess:
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
dělalo to smyčku při přesměrování, tak jsem někde vyčetla řešení,
že se do bootstrap na začátek dá:
unset($_SERVER[‚HTTPS‘]);
to jsem udělala vše ok, jen při odeslání jakéhokoliv formuláře se web přesměruje na HTTP místo HTTPS a hodí mi to chybu. ERR_INVALID_HTTP_RESPONSE
Poradíte mi prosím, jak to správně udělat? Děkuji
- GEpic
- Člen | 566
Nic takového jako unset($_SERVER[‚HTTPS‘]);
bys potřebovat
neměla, stačí bohatě nastavení htaccess, mé nastavení je (aplikace je na
subdoméně, pokud je navíc potřeba přesměrovat z non-www na www, tak
můžu zaslat příklad taky)
# Apache configuration file (see https://httpd.apache.org/docs/current/mod/quickreference.html)
Allow from all
# disable directory listing
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# enable cool URL
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# prevents files starting with dot to be viewed by browser
RewriteRule /\.|^\.(?!well-known/) - [F]
# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz|map)$ index.php [L]
</IfModule>
# enable gzip compression
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml image/svg+xml
</IfModule>
</IfModule>
Editoval GEpic (24. 5. 2018 18:08)
- iru
- Člen | 110
GEpic napsal(a):
Nic takového jako
unset($_SERVER[‚HTTPS‘]);
bys potřebovat neměla, stačí bohatě nastavení htaccess, mé nastavení je (aplikace je na subdoméně, pokud je navíc potřeba přesměrovat z non-www na www, tak můžu zaslat příklad taky)# Apache configuration file (see https://httpd.apache.org/docs/current/mod/quickreference.html) Allow from all # disable directory listing <IfModule mod_autoindex.c> Options -Indexes </IfModule> # enable cool URL <IfModule mod_rewrite.c> RewriteEngine On # RewriteBase / RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # prevents files starting with dot to be viewed by browser RewriteRule /\.|^\.(?!well-known/) - [F] # front controller RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz|map)$ index.php [L] </IfModule> # enable gzip compression <IfModule mod_deflate.c> <IfModule mod_filter.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml image/svg+xml </IfModule> </IfModule>
Pokud to umažu, tak dostávám chybu:
Web mojedomena.cz vás přesměroval příliš mnohokrát.
Zkuste vymazat soubory cookie.
ERR_TOO_MANY_REDIRECTS
- iru
- Člen | 110
iguana007 napsal(a):
Routy sis upravila?
Routy mám takto:
public static function createRouter()
{
$router = new RouteList();
$router[] = new Route(‚certifikace‘, array(
‚presenter‘ ⇒ ‚Certifikaty‘,
‚action‘ ⇒ ‚default‘,
‚id‘ ⇒ NULL,
‚url‘ ⇒ ‚certifikace‘,
));
$router[] = new Route(‚[<url>]‘, ‚Clanky:show‘);
$router[] = new Route(‚<presenter>/<action>[/<id>]‘,
‚Homepage:default‘);
return $router;
}
- iguana007
- Člen | 970
Změň to takto a snad to pojede:
$router = new RouteList();
$router[] = new Route('certifikace', array(
'presenter' => 'Certifikaty',
'action' => 'default',
'id' => NULL,
'url' => 'certifikace'),
Route::SECURED);
Zbytek se mi nějak nezdá, ale jde o to, že ti tam chybí ten SECURED flag na konci definice routy.
Editoval iguana007 (24. 5. 2018 20:08)
- iru
- Člen | 110
Perfektní, děkuji moc. Já už jsem to jednou zkoušela, ale měla jsem tam
v tom bootstrap
unset($_SERVER[‚HTTPS‘]);
bez kterého to předtím dělalo problém, ale teď když jsem změnila routy a
ten unset odstranila, tak to pracuje, jak má…
iguana007 napsal(a):
Změň to takto a snad to pojede:
$router = new RouteList(); $router[] = new Route('certifikace', array( 'presenter' => 'Certifikaty', 'action' => 'default', 'id' => NULL, 'url' => 'certifikace'), Route::SECURED);
Zbytek se mi nějak nezdá, ale jde o to, že ti tam chybí ten SECURED flag na konci definice routy.