0

以下は、.htaccess の一部です。

 <IfModule mod_rewrite.c>
    RewriteCond %{HTTPS} =on    
    #RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R,L]
    RewriteEngine on
    #RewriteBase /~example/    
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
  </IfModule>

RewriteBase の前のコメントを削除すると、ウェブホストが提供する共有 SSL を介して自分のウェブサイトにアクセスできるようになりました: https://secure.myhost/~example/. ただし、非セキュア経由でアクセスしようとすると、サーバーエラーが発生しますhttp://example.com

私の質問は次のとおりです: HTTPS または HTTP に基づいて条件付きで RewriteBase を考慮するように .htaccess を作成する方法はありますか?

4

1 に答える 1

0

書き換えルールには、リファクタリングが必要です。コードを次のように置き換えます。

Options +FollowSymLinks -MultiViews

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /~example/

    RewriteCond %{HTTPS} on    
    RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

    RewriteRule (?!webroot/)^(.*)$ webroot/$1 [L,NC]
</IfModule>
于 2013-08-25T10:49:59.297 に答える