Przekierowanie na https

0

Witajcie,
Mam stronę opartą na Laravelu.
Potrzebuję zrobić przekierowanie z www/bez www z http na https (bez www).

Mam taki kod w httacess:


<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
Options -MultiViews -Indexes
    </IfModule>

RewriteEngine On
    # Redirect to https
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://sample.mydomain.com/ [R,L]

    # Redirect to non www
    RewriteCond %{HTTP_HOST} ^www.sample.mydomain.com$ [NC]
    RewriteRule ^(.*)$ https://sample.mydomain.com/ [R=301,L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Fonts
    # Add correct content-type for fonts
    AddType application/vnd.ms-fontobject .eot
    AddType application/x-font-ttf .ttf
    AddType application/x-font-opentype .otf
    AddType application/x-font-woff .woff
    AddType image/svg+xml .svg

    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType text/javascript "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType application/x-javascript "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 month"
    ExpiresByType image/ico "access plus 1 month"

    ExpiresByType text/css "access plus 1 month"
    ExpiresByType text/css "now plus 1 month"
    ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
    ExpiresByType application/x-font-ttf "access plus 1 month"
    ExpiresByType application/x-font-opentype "access plus 1 month"
    ExpiresByType application/x-font-woff "access plus 1 month"
    ExpiresByType image/svg+xml "access plus 1 month"
    ExpiresByType text/html "access plus 600 seconds"

    ExpiresDefault "access plus 2 days"

</IfModule>

Jednak nie działa on do końca poprawnie.
W momencie gdy klikam na http://sample.mydomain.com - przekierowanie nie działa :(

Co mam nie tak?

0

Tak na szybko patrząc, możliwe, że z powodu użycia $ nie chce to działać, bo ograniczasz sobie zasięg do konkretnego adresu. I jesteś pewny, że warunek dotyczący portu nie jest też powodem?

Ja używam czegoś takiego:

# remove www from url
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [L,R=301]

# redirect to https://
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^localhost
RewriteCond %{HTTP_HOST} !^127.0.0.1
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Dzięki temu od razu mam wyłączone to lokalnie.

EDIT: I co znaczy, że Jednak nie działa on do końca poprawnie.?

0

U mnie działa taki myk na wielu frameworkach i nie tylko:

    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://sample.mydomain.com/$1 [R,L]
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
0
serek napisał(a):

Tak na szybko patrząc, możliwe, że z powodu użycia $ nie chce to działać, bo ograniczasz sobie zasięg do konkretnego adresu. I jesteś pewny, że warunek dotyczący portu nie jest też powodem?

Ja używam czegoś takiego:

# remove www from url
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [L,R=301]

# redirect to https://
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^localhost
RewriteCond %{HTTP_HOST} !^127.0.0.1
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Dzięki temu od razu mam wyłączone to lokalnie.

EDIT: I co znaczy, że Jednak nie działa on do końca poprawnie.?

Po dodaniu tego htaccessa mam przekierowanie na:

https://sample.domain.com/public/sample.domain.com zamiast na https://sample.domain.com :( . Testuje na home.pl

1 użytkowników online, w tym zalogowanych: 0, gości: 1