̃Gg[͂ĂȃubN}[Nɒlj

apache :: URL(ディレクトリ名)にハイフンがある時、Rewrite がマッチしない場合の対処法



久々に2時間ほどハマってしまいました。

次のリクエスト(ハイフン入り)を

http://example.com/hoge-fuga

内部的に

http://example.com/hogefuga.php 

↑へ書き換えたい場合。

通常は RewriteRule に以下のように書くと思います。

RewriteEngine On 
RewriteRule ^hoge-fuga$ /hogefuga.php


しかし、上記ではサーバーの設定によって動作しない場合があります。


動作しない時は、

Options -MultiViews

↑を .htaccess に追記して MultiViews を無効にします。


下記URLを参考にさせてもらいました。thanks!
http://stackoverflow.com/questions/1063990/why-does-a-hyphen-in-a-rewriterule-break-when-in-a-sub-folder


関連エントリー:




server/apache/etc/rewrite_hyphen.txt