2016-03-22 6 views
0

指定されたurl(service/scripts /)パスのhtaccessリライトに問題があります。パスに「サービス/スクリプトが含まれていて、httpでリンクを開くだけの場合はリダイレクトしたくありません。他のすべてのリンクはhttpsにリダイレクトする必要があります。私はCodeigniterフレームワークを使用しています。 *がtriggertされていない.htaccess特定のURLパス(httpsなし)のRewriteCond

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}^/サービスまたはsecoundのRewriteCondは...

それをオーバーライドしている:。!と私は次のコードTRY1とTRY2を試してみました

誰かが私を助けることができますか? よろしくお願いします。 Dave

答えて

1

今、問題を解決するために、すべてのページのHTMLヘッドで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(); 
} 
} 
関連する問題