Subscribed unsubscribe Subscribe Subscribe

ApacheのAliasMatchの設定

AliasMatchとは

動作

  • 正規表現を使ってURLをファイルシステムの位置にマップします
  • ドキュメントルートとは別のディレクトリにあるファイルをドキュメントルートの配下に配置されているようにすることができます

構文

AliasMatch ^/(nyan|wan)((/[a-z0-9\-]+){1,2})(/)(animal)(/.*)$ /home/www/animal/docroot/index.php
  • $1とは
# $1はURLの^/icons(.*)の(.*)に対応する
AliasMatch ^/icons(.*) /usr/local/apache/icons$1

注意点

  • 既存の設定への影響
設定が被った場合にはより上に書かれているものが優先されてしまいますので、  
既存の設定に影響させないためにはより長いURL設定のものを上に記述します
  • URLの末尾の/を忘れた時のリダイレクト
AliasMatch ^/cat/cat([a-z0-9]{4})/$ "/home/www/docroot/index.php"

この場合,^/cat/cat([a-z0-9]{4})/$と指定しているため、
http://domain/cat/cat0001http://domain/cat/cat0001/のようにリダイレクトされません。

しかし、リンク先の最後の/を書き忘れたhttp://domain/cat/cat0001
無駄なリダイレクトを発生させなくて済むので、
最後に/がないリンク先を許容しなくても良いと思います。

パフォーマンスの基礎としても、URL最後の「/」がない場合に
よしなに「/」を付けてリダイレクトされてしまう場合、
最後の「/」がないソースが書かれてしまう可能性があります。