HTACCESS重定向澄清

时间:2017-04-03 13:57:52

标签: apache .htaccess mod-rewrite

我正在尝试使用.htaccess重定向我的网页。对于所有请求,我想重定向到http到https。但是,如果网址包含子字符串api,我不希望这种重定向。我试过跟随,但它总是重定向到https。

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

    RewriteEngine On

    RewriteCond  %{SERVER_PORT} ^80$
    RewriteCond %{REQUEST_URI} api
    RewriteRule  ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

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

1 个答案:

答案 0 :(得分:1)

使用它代替子串&#39; api&#39; URI中的任何位置:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !api
RewriteRule  ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

如果您只想排除&#39; ... / api /...'

之类的电话,请改变它
RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !\/api\/
RewriteRule  ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]