Welcome, Guest. Please login or register.
+  Linux Soft Forum
|-+  Cercetează» Reţele, servere» redirect http to https
[Picture 161] [Picture 160] [Picture 159]
Username:
Password:
 
Pages: [1]   Go Down
  Print  
Author Topic: redirect http to https  (Read 1125 times)
0 Members and 1 Guest are viewing this topic.
ioask4it
Membru
*

« on: June 29, 2009, 11:26:47 PM »

Salut,
dupa cum spune numele, daca cineva acceseaza serverul apache de pe opensuse, pe portul 80, cul il redirectez pe 443 (https)?

Multumesc
Logged
volomir
Membru
*

« Reply #1 on: June 30, 2009, 01:54:17 AM »

Faci un redirect in .htaccess :-)

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
Logged
Saltwater
Veteran
**

Whatever™


WWW
« Reply #2 on: June 30, 2009, 09:14:50 AM »

Duda, nu trebuia cumva sa faci redirect catre https://... ?

Code:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Aceasta daca vrei ca toate paginile sa foloseasca in mod fortat HTTPS. Pentru redirect fortat doar pe anumite cai:

Pentru o cale anume (/foo spre exemplu, util pentru a forta SSL pe partile administrative si a lasa la liber restul site-ului):

(1) pentru .htaccess sau cazul in care directivele vor fi in interiorul <Directory /path/to/virtual/host/www/root>[...]</Directory>

Code:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^foo(.*) https://%{HTTP_HOST}/foo$1

(2) pentru cazul in care directiva va fi in interiorul <VirtualHost [...]>[...]</VirtualHost> dar inafara lui Directory de mai sus:

Code:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/foo(.*) https://%{HTTP_HOST}/foo$1

Singura difereta dintre cele doua ((1) si (2)) este faptul ca (2) are un slash in fata lui foo. Iar acum pentru ca ti-am dat totul mura in gura, pune mana pe citit si afla cum implementezi directivele de mai sus pe baza lui <IfModule> (exemplu: <IfModule mod_rewrite.c>chestii, avioane, reguli</IfModule>). Pentru ca la baza sunt programator, nu sysadmin, prefer ca acel config sa fie cat mai programatic, deci nu ma prea inteleg cu un '500 - Internal Server Error' sau erori criptice prin error log pentru situatia in care fac o faza de cartea rebuturilor si uit sa activez mod_rewrite sau mod_ssl.

Spor la configurat.

// Edit: double [ code ] block with the same sh|t ...
« Last Edit: June 30, 2009, 04:25:01 PM by Saltwater » Logged



Astazi nu am semnatura.
classicmanpro
Veteran
**

Experientia docet!


WWW
« Reply #3 on: June 30, 2009, 10:54:40 AM »

@Saltwater: Interesanta metoda ta ... Eu de regula redirectionez fortat si explicit, ca volomir. Smiley


/OffTopic #1: Gata cu examenele? ... Esti 99,9% LS?
/OffTopic #2: Azi cred ca apare Firefox 3.5 :D Ranjeste fasolea
« Last Edit: June 30, 2009, 11:01:31 AM by classicmanpro » Logged

Saltwater
Veteran
**

Whatever™


WWW
« Reply #4 on: June 30, 2009, 02:13:43 PM »

Prefer metoda pentru ca functioneaza indiferent de CNAME, port (desi aici e discutabil, trebuie sa caut o metoda de a extrage portul SSL din configul Apache pentru a o face universala) sau altfel spus, daca vreau sa tratez CNAME-ul, il tratez separat (www to non-www sau opus) asta exceptand situatia cand mai dau de catre o mumie de server fara suport .htaccess si fara posibilitatea de a manari prin config la Apache => http://saltwaterc.net/programare/301-redirect-fara-htaccess-si-mod_rewrite.html - adus la zi.

Exemplu pentru faza cu CNAME-ul tratat separat (www to non-www):

Code:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^foo\.com$
RewriteRule (.*) http://foo.com/$1 [R=301,L]
</IfModule>
Logged



Astazi nu am semnatura.
ioask4it
Membru
*

« Reply #5 on: June 30, 2009, 04:53:23 PM »

multumesc frumos
DAR, eu incapator fiind am pus un .htacces de forma

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

iar in default-server.conf

Options Indexes +FollowSymLinks
AllowOverride All

iar ca rezultat...

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script.

If you think this is a server error, please contact the webmaster.
Error 500
« Last Edit: June 30, 2009, 08:57:00 PM by ioask4it » Logged
ioask4it
Membru
*

« Reply #6 on: July 05, 2009, 12:15:44 AM »

trebuia dat a2enmod rewrite :D Ranjeste fasolea
Logged
Saltwater
Veteran
**

Whatever™


WWW
« Reply #7 on: July 06, 2009, 08:50:40 AM »

Tocmai de acceea ti-am zis de IfModule. Un 404 iti da de gandit mai repede decat un 500, cel putin in cazul subsemnatului unde regulile de rewrite sunt facute de catre CMS/framwork/engine/etc.
Logged



Astazi nu am semnatura.
Pages: [1]   Go Up
  Print  
 
Jump to: