2012-03-10 9 views
0

私はtuckey Apache mod-rewriteエンジンを使用してURLを書き換えています。以下に示すようにしかし、私は Apache mod_rewriteでエスケープドット

RewriteRule ^/?(([A-Za-z0-9:-])+([.]*))$ /derive.php[L] 

RewriteRule ^/?(([A-Za-z0-9:-\.])+)$ /derive.php[L]はtuckeyで許可されていない)、

www.example.com/hello.world -> www.example.com/derive.php 

次のルールが、私は上記のことを行うために書かれているものです、URLを飾るためにドットをエスケープに問題を持っています

URLを飾るためにtuckeyを使用した人は、この質問に完全に答えられると思います。

答えて

2

ドットは特別な意味を持たないため、エスケープする必要はありません。

RewriteRule ^(?!/?derive[.]php$)/?[A-Za-z0-9:.-]+$ /derive.php [L] 
+0

ありがとうRuakh、 まだ動作させることができませんでした。あなたのソリューションは私にjava.lang.StackOverflowErrorを与えました。 上記のように、私はGAEアプリケーションでtuckey mod_rewriteエンジンを使用しています。明らかに、すべてのmod_rewriteオプションをサポートしているわけではありません。 誰でもこの問題を回避できますか? ありがとう、 –

+0

@ChamikaDilshan:私はそれが無限の再帰のためだと思う - '/ derive.php'自体がこのルールにマッチするので、無限に再帰する。 ( '[L]'はそれを防ぐことになっていますが、Tuckeyはそれをとてもうまくサポートしていないかもしれません)だから、このルールを適用する際に 'derive.php'を除外するよう正規表現を修正しました。 – ruakh

+0

ありがとうRuakh それは働いた。 –