![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
chcę, żeby niektóre podstrony były dostępne tylko w połączeniu szyfrowanym (https). Robię to tak: Kod Options +FollowSymlinks RewriteEngine On #SSL RewriteCond %{HTTPS} !=on RewriteRule "(rejestruj|login|zmien_haslo|profil)+" "https://%{HTTP_HOST}%{REQUEST_URI}" [R=301,L,NC] #na koniec jeszcze nice URLs RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*$ ?controller=$1&action=$2&$3=$4&$5=$6&$7=$8 [L,NC,NS] To działa, czyli jak wklepię np. http://localhost/example.net/kontroler/rejestruj, zostanę przekierowany na https://... Muszę jednak założyć, że użytkownik może wklepać https:// dla innych akcji, np. https://localhost/example.net/kontroler/non_ssl- to chcę przekierować z powrotem na http://... Z tym właśnie mam problem, próbuję m. in. tego: Kod RewriteCond %{HTTPS} =on RewriteCond %{REQUEST_URI} !(rejestruj|login|zmien_haslo|profil)+ [NC] RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC] Skutek jest taki, że wszystkie adresy są przekierowywane na http:// (włącznie z tymi 'rejestruj' itd.), a dodatkowo te, które powinny być dostępne via https, są w postaci http://localhost/example.net?controller=ko...ction=rejestruj (a np. /non_ssl będzie już w "ładnej" postaci). Nie bardzo wiem, gdzie robię błąd, dlatego będę wdzięczny za pomoc. Pozwolę sobie na podbicie tematu - ciągle nie znalazłem rozwiązania, a sprawa trochę mnie ciśnie. -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Pytanie. Dlaczego nie możesz tego zrobić z poziomu php? ZNacznie łatwiej.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tak tymczasowo zrobiłem, ale:
1) chciałbym poznać rozwiązanie dla własnej wiedzy, 2) kwestie takich i podobnych przekierowań chcę pozostawić w htaccess dla pewnego (niekoniecznie dobrego, ale zastanego) porządku (podobnie jak nice urls, które też mogą być via php). -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Pozwolę sobie na podbicie tematu - ciągle nie znalazłem rozwiązania, a sprawa trochę mnie ciśnie. Cały dzień na weekendzie klepałem, chyba jest to, co chcesz. ;] http://eriz.pcinside.pl/weblog/mod_rewrite...wiazac-208.html -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Kawał dobrej roboty odwaliłeś.
Niestety u mnie dalej nie działa :/ Sam już nie wiem, w czym problem. Reguła przekierowywania na https działa, odwrotna już nie. Niżej mój kompletny htaccess. Przykładowy URL dla którego powinno być SSL: https://localhost/jakas_strona/kontroler/login/; bez SSL: http://localhost/jakas_strona/kontroler/no_ssl/ Oczywiście zadziała reguła, w której wypiszę wszystkie akcje, dla których SSL ma być wyłączone, ale tych jest bardzo dużo i sensowniej jest wypisać akcje, dla których SSL ma być włączone. Kod Options +FollowSymlinks
RewriteEngine On #uniemożliwienie wykonywania metody TRACE RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F] #(www.) RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [r=301,NC,l] #SSL RewriteCond %{HTTPS} off RewriteRule (rejestruj|login|login_proceed|logout|usun_konto|usun_konto_po|zmien_haslo|pr fil|zapomniane_haslo|zapomniane_haslo_zmiana) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC] #poniższe nie działa; po włączeniu otrzymuję dla akcji "login" ciąg: #http://localhost/jakas_strona/?controller=kontroler&action=login&=&=&= #RewriteCond %{HTTPS} on #RewriteRule !(rejestruj|login) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC] # Nice URLs RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*$ ?controller=$1&action=$2&$3=$4&$5=$6&$7=$8 [L,NC,NS] #PHP php_flag magic_quotes_gpc off php_flag session.use_trans_sid off php_flag session.cookie_httponly on php_value url_rewriter.tags a=href,area=href,frame=src,input=src,fieldset= php_value session.cache_limiter nocache php_value session.cache_expire 30000 php_value session.gc_maxlifetime 86400 php_value session.cookie_lifetime 0 -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 20:43 |