2016-07-04 8 views
0

でURLから「国民削除私は、それは間違いなく働いているの.htaccessLaravelウェブサイト永久HTTPSのリダイレクトとhtaccessの

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 

に次のコードを適用することによって、URLから公共の単語を削除しました。しかし、永続的なリダイレクトhttpをhttpsに設定しようとしています。 .htaccessで次のコードを使用する:

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

問題がどこにあるか教えてください。これは、httpsにURL

+1

ドメインを/ publicフォルダに指定するだけではどうですか? –

+0

HTTPsを通常のルールよりも強くするルールを移動する必要があります。 – Lag

答えて

0

RewriteCondがするRewriteCondディレクティブは、ルール条件を定義するだけRewriteRule

に適用されたURLだけでなく、永続的にリダイレクトからのパブリックフォルダを削除する必要があります。 1つまたは複数のRewriteCondをRewriteRuleディレクティブの前に置くことができます。したがって、という規則に従うは、URIの現在の状態がパターンと一致し、これらの条件が満たされている場合にのみ使用されます。

HTTPSを強制するために、あなたは、例えば、フロントにそれを移動する必要があります、が、だからあなたの場合には、あなたは、第二RewriteRule

の前で
RewriteRule ^(.*)$ public/$1 [L] 
RewriteCond %{HTTPS} !^on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCondを移動する必要があります

RewriteCond %{HTTPS} !^on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 
RewriteRule ^(.*)$ public/$1 [L] 

すべてはそれが必要として動作

、あなたはR=301Rを置き換えることができます。 R=301でテストしないでください。

+0

ありがとうございました。 –

関連する問題