【问题标题】:.htaccess RewriteCond for a specific url path without https.htaccess RewriteCond 用于没有 https 的特定 url 路径
【发布时间】:2016-07-10 00:59:30
【问题描述】:

在指定的 url (service/scripts/) 路径上的 htaccess 重写存在问题。如果路径包含“service/scripts 并且只需使用 http 打开链接”,我不喜欢重定向。所有其他链接应重定向到 https。我正在使用 Codeigniter 框架。我已经尝试了以下代码 TRY1 和 TRY2:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
#RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]
RewriteCond $1 !^(index\.php|(.*)\.swf|assets|service/*|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L] 
Header add Access-Control-Allow-Origin "https://url.info/" 

<IfModule mod_rewrite.c> 
# TURN SSL ON 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://www.url.info/$1 [R,L]

# TRY 1 
#RewriteCond %{HTTPS} on 
#RewriteCond %{REQUEST_URI} ^/service.*
#RewriteRule ^(.*)$ http://www.url.info/$1 [R=301,L] 
#RewriteCond %{HTTPS} off 
#RewriteCond %{REQUEST_URI} !^/service.*
#RewriteRule ^(.*)$ https://www.url.info/$1 [R=301,L] 

# TRY 2
#RewriteCond %{HTTPS} on 
#RewriteCond %{REQUEST_URI} ^/service/scripts/?.*$
#RewriteRule ^(.*)$ http://www.url.info/$1 [R=301,L] 
#RewriteCond %{HTTPS} off 
#RewriteCond %{REQUEST_URI} !^/service/scripts/?.*$ 
#RewriteRule ^(.*)$ https://www.url.info/$1 [R=301,L] 

# Removes index.php RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 
# If 404s, "No Input File" or every URL returns the same thing 
# make it /index.php?/$1 above (add the question mark) 

</IfModule>

它总是像 RewriteCond %{REQUEST_URI} !^/service.* 一样重定向,没有触发或第二个 RewriteCond 覆盖它...

请问有人可以帮我吗? 最好的祝福, 戴夫

【问题讨论】:

    标签: .htaccess codeigniter mod-rewrite https rewrite


    【解决方案1】:

    现在我在所有页面的 HTML Head 中使用 PHP 重定向来解决问题。

    if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
    if(!headers_sent()) {
        header("Status: 301 Moved Permanently");
        header(sprintf(
            'Location: https://%s%s',
            $_SERVER['HTTP_HOST'],
            $_SERVER['REQUEST_URI']
        ));
        exit();
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-13
      • 2020-10-01
      • 2020-07-21
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      相关资源
      最近更新 更多