Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przkierowania na HTTPS za pomocą mod rewrite
nexis
post
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


Korzystam z Zend Framework i proponowanego przez autorów pliku .htaccess
Kod
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

Chciałbym, aby wybrane kontrolery i ich akcje były obsługiwane przez HTTPS. Posłużyłem się więc następującą zmianą
Kod
RewriteEngine On

RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} registration [OR]
RewriteCond %{REQUEST_URI} contact
RewriteRule ^(.*)$ https://domena.pl/$1 [R,L]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

gdzie kontroler registration oraz contact są przekierowywane na HTTPS. Rozwiązanie działa, choć nie wiem czy to najlepsza forma, ale problem polega na tym, że na stronie tworzę linki typu
  1. <a href="/controller/action">Link</a>

czyli będąc na stronie jako HTTPS zostanę również przekierowany na stronę poprzez HTTPS. Chciałbym jednak, aby pozostałe kontrolery były obsługiwane poprzez zwykły HTTP. Macie pomysł na rozwiązanie tego problemu?

EDIT (2009-04-29)
Rozwiązałem to póki co w ten sposób:
Kod
RewriteEngine on  

# HTTPS redirect
RewriteCond %{HTTPS} off
RewriteRule ^/?registration|contact.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

# HTTP redirect
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/?registration|contact|css|images|js.*$
RewriteCond %{REQUEST_URI} !^/?index\.php$
RewriteRule .? http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteRule !(\.gif|\.jpe?g|\.png|.ico|\.css|\.txt|js/.*)$ index.php [NC,L]


Ten post edytował nexis 29.04.2009, 12:38:10


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:37