2017-06-04 11 views
0

ユーザーin this thread.と同じ問題があります。基本的にすべてのHTTP要求をhttpなしでhttpsにリダイレクトしたい場合は、htaccessを使用します。URIなしのHTTPSへのリダイレクト

私はsolution to this problemを実装しています。これはかなりうまく機能します。

ただし、対応するURIにリダイレクトされません。私はポート80 example.com/news上の私のウェブサイトを訪問すれば、私は基本的には、ルート・ページであるhttps://example.com/index.phpにリダイレクトされます。..

私は本当にあなたの助けみんなを必要とする、私は全くのhtaccessについて見当もつかない..

EDITこれは私のmod_rewriteのは...

<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] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

    RewriteCond %{HTTPS} off 
    # First rewrite to HTTPS: 
    # Don't put www. here. If it is already there it will be included, if not 
    # the subsequent rule will catch it. 
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
</IfModule> 
+0

動的構成ファイルの現在のコードを投稿しなくても、私たちがどのように助けてくれると思いますか? – arkascha

+0

@arkascha私の投稿を更新しました。 – Dean

+0

_probably_問題は_first_を 'index.php'に書き換え、_then_が外部リダイレクトを行うことです。ルールの順序を変更してみてください。 'L'フラグはルールセットを通して_current_ walkだけ終了させることに注意してください。それ以降は再開されます。 – arkascha

答えて

0

のように見えるものである問題は、おそらくあなたが最初index.phpに書き換え、その後、外部のリダイレクトを作ることです。ルールの順序を変更してみてください。 Lフラグは、ルールセットを通して現在のウォークを終了するだけであることに注意してください。それ以降は再開されます。したがって、を最初にhttpsプロトコルに切り替えるための外部方向を行います。を入力してからを修正して内部書き換えを行います。

関連する問題