<IfModule mod_rewrite.c>
    RewriteEngine On

    # ブラウザから旧 /groupware URLへ直接アクセスされた場合は、ルートURLへ統一する。
    # ルート.htaccessからの内部転送は THE_REQUEST に /groupware がないため対象外。
    RewriteCond %{THE_REQUEST} \s/+groupware(?:/([^?\s]*))?[?\s] [NC]
    RewriteRule ^ /%1 [R=301,L,NE]

    # public 配下へ内部転送済みなら処理しない
    RewriteRule ^public(?:/|$) - [L]

    # public 内に実在するファイル・ディレクトリはそのまま表示
    RewriteCond %{DOCUMENT_ROOT}/groupware/public/$1 -f [OR]
    RewriteCond %{DOCUMENT_ROOT}/groupware/public/$1 -d
    RewriteRule ^(.+)$ public/$1 [L]

    # それ以外はアプリの入口へ
    RewriteRule ^ public/index.php [QSA,L]
</IfModule>
