Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mod-rewrite i https -> http
redman2
post
Post #1





Grupa: Zarejestrowani
Postów: 104
Pomógł: 3
Dołączył: 13.10.2004

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


Czy ktos wie, czemu po zastosowaniu takiej reguly w mod-rewrite

Kod
RewriteCond %{HTTPS} ^on$
   RewriteRule ^([a-z]+)$ http://%{HTTP_HOST}/$1.php [R]


i wpisaniu w przegladarce np : https://domena/index
przekierowuje mnie na http://domena/index.php zamiast http://domena/index

Dla mnie jest to co najmniej dziwne
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redman2
post
Post #2





Grupa: Zarejestrowani
Postów: 104
Pomógł: 3
Dołączył: 13.10.2004

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


Troszkę nie do końca. Dobra, spróbuję z innej beczki.

Mam serwis, w którym występują takie reguły mod-rewrite (na przykladzie)

Kod
         http:// domena/nazwa.php?query => http://domena/nazwa?query
         http://domena/nazwa_nazwa2.php => http://domena/nazwa/nazwa2?query
         http://domena/nazwa_nazwa2_nazwa3.php => http://domena/nazwa/nazwa2/nazwa3?query

Dla kilku "nazw" muszę zastosować zabezpieczenie https, np:

Kod
       http://domena/form_pl.php =>  https://domena/form/pl


Rozwiązałem to w następujący sposób:

Kod
       RewriteCond %{HTTPS} !^on$
       RewriteCond %{REQUEST_URI} ^/(form|kontakt|rejestruj|haslo|admin) [NC]
       RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]

RewriteRule ^([a-z]+)/?$ /$1.php [L,QSA]
      
       RewriteRule ^([a-z]+)/+([a-z0-9]+)/?$ /$1_$2.php [L,QSA]
      
       RewriteRule ^([a-z]+)/+([a-z0-9]+)/+([a-z]+)/?$ /$1_$2_$3.php [L,QSA]


Problem pojawia się przy powrocie z zabezpieczonych stron do stron niezabezpieczonych :

Kod
       RewriteCond %{HTTPS} !^on$
       RewriteCond %{REQUEST_URI} ^/(form|kontakt|rejestruj|haslo|admin) [NC]
       RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
      
       RewriteCond %{HTTPS} ^on$
       RewriteCond %{REQUEST_URI} !^/(form|kontakt|rejestruj|haslo|admin) [NC]
       RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
       RewriteRule ^([a-z]+)/?$ /$1.php [L,QSA]
      
   RewriteRule ^([a-z]+)/?$ /$1.php [L,QSA]
  
       RewriteRule ^([a-z]+)/+([a-z0-9]+)/?$ /$1_$2.php [L,QSA]
      
       RewriteRule ^([a-z]+)/+([a-z0-9]+)/+([a-z]+)/?$ /$1_$2_$3.php [L,QSA]


Przejście to wykonuje się poprawnie, ale z kolei występuje błąd weryfikacji certyfikatu.
I tak np. Firefox, dla zabezpieczonych stron robi przekierowanie na https, ale nie weryfikuje tego poprawnie, pokazując bląd:
Ta witryna nie dostarcza informacji na temat swej tożsamości

a IE z kolei nie wyświetla żadnego błędu a tym bardziej kłódki.

I co z tym zrobić (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 19:01