2017-09-06 35 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]