2017-09-06 42 views
0

我的網站(website.com)位於目錄:的public_html /目錄名/htaccess的力HTTPS +重定向到子目錄

我想:

  • 重定向所有流量目錄名的子目錄DIRNAME出現在url
  • 力HTTPS域
  • 我想通了,對於第一個條件:

    RewriteCond %{REQUEST_URI} !^/dirName/.*$ RewriteRule ^(.*)$ /dirName/$1 [L]

    而且我發現了HTTPS驗證碼:

    RewriteCond %{SERVER_PORT} 80 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    但我無法弄清楚如何將它們融合在一起。

    現在,我有https://www.website.com工作。但website.com,www.website.com或http://www.website.com重定向到https://www.website.com/dirName

    回答

    0

    可以使用(混合版):

    RewriteEngine on 
    RewriteCond %{HTTP_HOST} !^www\. [OR,NC] 
    RewriteCond %{HTTPS} off 
    RewriteRule^https://www.website.com%{REQUEST_URI} [NE,R=301,L] 
    RewriteRule ^((?!dirName/).*)$ /dirName/$1 [L] 
    

    因爲你不應該重定向到HTTPS(只有一個重定向)後重定向到www。甚至更少重定向到http://www(而不是https)

    +1

    謝謝 它完美的作品 我希望我能upvote這 – Turtles

    0

    我沒有融合他們,但它的工作原理是這樣的:

    RewriteEngine on 
    
    RewriteCond %{HTTPS} !=on 
    RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
    
    RewriteCond %{HTTP_HOST} !^www\.website\.com$ [NC] 
    RewriteRule ^(.*)$ http://www.website.com/$1 [R=301,L] 
    
    RewriteCond %{REQUEST_URI} !^/dirName/.*$ 
    RewriteRule ^(.*)$ /dirName/$1 [L]