2016-06-15 20 views
0

私はapachelaravelを使用しており、すべてのリクエストをhttpsにリダイレクトしたいと考えています。例については :.htaccess経由のhttpsリダイレクトは機能しません

https://abc.123/my/test

にリダイレクトする

abc.com/my/test 私はこのURLをしたい

現在、私は、コードの下に持っていますファイル内

/var/www/html/laravelProjet/public/.htaccess

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

RewriteEngine On 

# Redirect Trailing Slashes If Not A Folder... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

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

# For redirecting HTTP to HTTPS 
# comment & un-comment below lines according to certificates 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

</IfModule> 

問題:adobe htaccess設定リダイレクトを行いますが、間違った道へ。それは

https://abc.123/index.php

にリダイレクトし、私はそれは、上記のリンクにリダイレクトされるようにしたいです。

+1

次に、HTTPSを行います内部パスマッピングの前にリダイレクトします。 – mario

+0

"ハンドルフロントコントローラー"の[L]フラグは、これが一致した場合に処理ルールを停止する必要があることを意味します。 – hank

+0

[L]フラグの削除が機能しました。どうもありがとう。 – Knight

答えて

0

[L]フラグは、mod_rewriteによってルールセットの処理を停止させます。 ほとんどのコンテキストでは、これは、ルールが一致する場合は、さらにルール が処理されないことを意味します。

https://httpd.apache.org/docs/current/rewrite/flags.html

あなたはライン上[L]フラグを削除してみてください:

RewriteRule^index.php [L]

あなたはまた、PHPでHTTPSにリダイレクトすることができます

if(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") { 
    $url = "https://".$_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
    header("Location: $url"); 
    exit; 
} 
+0

[L]フラグの削除が機能しました。どうもありがとう。 – Knight

関連する問題