アプリ版:「スタンプのみでお礼する」機能のリリースについて

xrea+ と 開発環境 とで .htaccess の RewriteRule の挙動が違う

.htaccessに、下記のように記述しています。

RewriteRule ^route_([0-9A-Za-z\-_]+)@([0-9]+)\.html$ route.php?RES=$1&RT=$2

この状態で、例えば
route_8952014-00_8954061-00@06.html
と指定すると、RESには'8952014-00_8954061-00',RTには'06'が渡されるはずだと思います。

実際に、開発環境(VS.Php 2.6 Standalone Edition)ではそのように動くのですが、
本番環境として使いたい、レンタルサーバの xrea+ ではそのようには動かず、
上記の例だと 404 Not Found になってしまいます。

なぜこのような挙動になるのか、ご説明いただけないでしょうか。
よろしくお願いします。

A 回答 (1件)

正規表現のバージョン違いです。

たぶんApacheのバージョン違い。1.3まではPOSIX、2.0からはPerl互換に変わっています。
両方で動かすには (.+) 等でざっくりといくか、または[0-9A-Za-z\-_] の- は []の最初か最後と決まっていたはずです。\も不要だったはず。したがって [0-9A-Za-z_-]+ かと。
    • good
    • 0
この回答へのお礼

ありがとうございます!
バッチリ動きました!!

お礼日時:2010/06/26 22:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!