Htaccess – Smyčka přesměrování

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Thommie
Člen | 34
+
0
-

Ahoj,

nasazuji svůj projekt do ostrého provozu na Active24 a v www mám standardní httaccess, který byl už v projektu:

# Apache configuration file (see httpd.apache.org/docs/current/mod/quickreference.html)

# disable directory listing
<IfModule mod_autoindex.c>
	Options -Indexes
</IfModule>

# enable cool URL
<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /

	# use HTTPS
	RewriteCond %{HTTPS} !on
	RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

	# 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>

Prohlížeč mi vyhazuje chybu a píše, že došlo k příliš mnoha přesměrováním.
Potřebuji adresu ve tvaru https://www.example.cz

v indexu mám:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
    $_SERVER['SERVER_PORT'] = '443';
}

$container = require __DIR__ . '/../home/bootstrap.php';

$container->getByType(Nette\Application\Application::class)
	->run();

pokud z htaccess dám pryč řádky s https:

# use HTTPS
	RewriteCond %{HTTPS} !on
	RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

tak se aplikace rozběhne, ale umožní i přístup na http, což nechci.

Nevidíte prosím, kde je chyba, případně, co mám přidat?

Díky

Editoval Thommie (27. 5. 2017 12:59)

Thommie
Člen | 34
+
0
-

Vyřešil jsem přidáním

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE]

tak kdyby to ještě někdo řešil na active24.

https://faq.active24.com/…ifik%C3%A1ty#…

Editoval Thommie (27. 5. 2017 19:07)

iNviNho
Člen | 352
+
0
-

Pozrii :)

https://forum.nette.org/…za-http-host

Inak ja tieto veci nedávam do .htaccess, ktorý je vo www ale ešte o uroven vyššie.