web-dev-qa-db-ja.com

ディレクティブがApache VirtualHost設定で機能しない場合、「無効なコマンド」と表示されます

なぜ??

<VirtualHost *:80>
        ServerAdmin [email protected]
        DirectoryIndex index.php
        <If "%{SERVER_PROTOCOL} != 'HTTPS'">
            Redirect / https://www.mydomain.com:443/
        </If>
.....
</VirtualHost>

保存して再起動します。

Sudo /etc/init.d/Apache2 restart
Syntax error on line 4 of /etc/Apache2/sites-enabled/000-default:
Invalid command '<If', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!
7
NotGaeL

「If」は、Apacheが理解するものではありません(バージョン2.3より前)。おそらくmod_rewriteを見てください。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://example.com:443/$1 [R,L]

Apacheのバージョンを見つけるには、おそらく次のように使用できます:Apache2 -v

4
TheCompWiz