QA@IT
«回答へ戻る

回答を投稿

2.4 は使ったことないですが、2.2 なら alias と rewrite を絡める場合は、<Directory> ディレクティブや .htaccess に RewriteBase が必要でした。

<Directory /var/www>
    RewriteRule ^([^/]+/[^.]+)$ ${adjust-extension:$1|$1}
</Directory>
<Directory /var/www/common/polyfill>
    RewriteBase /polyfill
    RewriteRule ^([^/]+/[^.]+)$ ${adjust-extension:$1|$1}
</Directory>

ログの前半部分は次のような意味だと思います。

strip per-dir prefix: /var/www/common/polyfill/main -> common/polyfill/main

<Directory> に指定された /var/www を除去

applying pattern '^([^/]+/[^.]+)$' to uri 'common/polyfill/main'
map lookup OK: map=adjust-extension key=common/polyfill/main -> val=common/polyfill/main.es
rewrite 'common/polyfill/main' -> 'common/polyfill/main.es'

RewriteRule と RewriteMap で common/polyfill/main.es にリライト

add per-dir prefix: common/polyfill/main.es -> /var/www/common/polyfill/main.es

RewriteBase を追加(未指定なら DocumentRoot と RequestURL から導出されるが、DocumentRoot 外に Alias していると導出できないのでこのようになる)

internal redirect with /var/www/common/polyfill/main.es [INTERNAL REDIRECT]

/var/www/common/polyfill/main.es へ内部リダイレクト(要するに http://example.jp/var/www/common/polyfill/main.es)

2.4 は使ったことないですが、2.2 なら alias と rewrite を絡める場合は、`<Directory>` ディレクティブや .htaccess に RewriteBase が必要でした。

    <Directory /var/www>
        RewriteRule ^([^/]+/[^.]+)$ ${adjust-extension:$1|$1}
    </Directory>
    <Directory /var/www/common/polyfill>
        RewriteBase /polyfill
        RewriteRule ^([^/]+/[^.]+)$ ${adjust-extension:$1|$1}
    </Directory>

---

ログの前半部分は次のような意味だと思います。

    strip per-dir prefix: /var/www/common/polyfill/main -> common/polyfill/main

`<Directory>` に指定された /var/www を除去

    applying pattern '^([^/]+/[^.]+)$' to uri 'common/polyfill/main'
    map lookup OK: map=adjust-extension key=common/polyfill/main -> val=common/polyfill/main.es
    rewrite 'common/polyfill/main' -> 'common/polyfill/main.es'

RewriteRule と RewriteMap で common/polyfill/main.es にリライト

    add per-dir prefix: common/polyfill/main.es -> /var/www/common/polyfill/main.es

RewriteBase を追加(未指定なら DocumentRoot と RequestURL から導出されるが、DocumentRoot 外に Alias していると導出できないのでこのようになる)

    internal redirect with /var/www/common/polyfill/main.es [INTERNAL REDIRECT]

/var/www/common/polyfill/main.es へ内部リダイレクト(要するに http://example.jp/var/www/common/polyfill/main.es)