2017-11-17 57 views
9

Tôi đang cố gắng chuyển hướng tất cả non-www đến www trên trang web của mình! SSL của tôi đã được định cấu hình để chuyển hướng tất cả http đến https nhưng tất cả những gì tôi đã tìm thấy chỉ hoạt động một phần cho tôi!301 chuyển hướng không www đến www

nếu tôi gõ mysite.com/en/articles/12/how-to-code, ví dụ tôi đang chuyển hướng đến www.mysite.com/index.php mà cần phải có được www.mysite.com/en/articles/12/how-to-code

Tôi đã thử các giải pháp để SO question này, tôi biết câu hỏi này là một sự lặp lại có thể nhưng các giải pháp khác đã không làm việc cho tôi ! Đang sử dụng apache2.

này .htaccess của tôi trong thư mục/công

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

    RewriteEngine On 

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

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

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

    # Redirect to www 
    RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
    RewriteCond %{HTTPS}s ^on(s)| 
    RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
</IfModule> 

Cảm ơn trước

Trả lời

6

Thay đổi thứ tự, và chuyển hướng trước khi viết lại:

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

    RewriteEngine On 

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

    # Redirect to www 
    RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
    RewriteCond %{HTTPS}s ^on(s)| 
    RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

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

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

Bởi vì nếu bạn chuyển hướng sau khi viết lại URL, đây là phiên bản cuối cùng sẽ được sửa đổi và trả lại cho yêu cầu chuyển hướng.

+1

Cảm ơn Croises! Bạn chỉ có 50 điểm nữa! lol bây giờ xin vui lòng bạn có thể giải thích lý do tại sao nó hoạt động theo thứ tự này nhưng không làm việc trong khác mà tôi đặt nó? Có thể như cập nhật câu trả lời của bạn. –

+0

Ai đó có thể giúp tôi với câu hỏi trong https://stackoverflow.com/questions/47475677/redirect-to-a-new-domain-using-apache-vhost-configuration –

Các vấn đề liên quan