htaccess多个规则和http到https

时间:2015-02-18 18:10:08

标签: apache .htaccess mod-rewrite

我试图找出重写规则。我们目前有以下规则:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(blog\.)?example\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/(public|scripts)/ [NC]
    RewriteRule ^(.*)$ /public/$1 [L]
</IfModule>

我们需要一个额外的规则,将所有HTTP流量重定向到HTTPS。

我已经尝试了以下方法,但没有工作。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    RewriteCond %{HTTP_HOST} ^(blog\.)?example\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/(public|scripts)/ [NC]
    RewriteRule ^(.*)$ /public/$1 [L]
</IfModule>

1 个答案:

答案 0 :(得分:1)

尝试在重定向规则中添加L标记:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

    RewriteCond %{HTTP_HOST} ^(blog\.)?example\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/(public|scripts)/ [NC]
    RewriteRule ^(.*)$ /public/$1 [L]
</IfModule>