たぶん私は愚かなことをしているのかもしれませんが、htaccessの問題を取り除くことはできません。
ドキュメントサイトで関数名を一致させようとしていますが、理解できないエラーが発生します。私は(私が思うに)正規表現がエスケープすることを知っていること、そしてドットとバックスラッシュドットが何を意味するかを知っていることを指摘しなければなりません。
だから:私はこれらすべてを許可したい:
example.com/foofunction
example.com/foofunction.php
example.com/function.foofunction
example.com/function.foofunction.php
これらは私が試した行です。エラーの原因となるものは誤解されているので、私に何かを説明できる人に感謝します。
^function\.([A-Za-z0-9_-]+)(\.php)?$
->動作しますが、function.
必須になります
^(function\.)?([A-Za-z0-9_-]+)(\.php)?$
->内部エラー...わかりました。ドットをエスケープしないでください。最終的には、どの文字とも一致し、機能します...
^(function.)?([A-Za-z0-9_-]+)(\.php)?$
->内部エラーも!わかりました、試してみるだけで、条件付きの外側にドットを付けますか?
^(function)?\.([A-Za-z0-9_-]+)(\.php)?$
->動作します、わかりました、しかしそれはドットを必須にします。ちなみに、もっとクレイジーなこと:
^(function)?.([A-Za-z0-9_-]+)(\.php)?$
->ドットがエスケープされていない場合(任意の文字を許可したいとします)、内部エラーも発生します。今度はドットを個別にオプションにしようとします
^(function)?(\.)?([A-Za-z0-9_-]+)(\.php)?$
->内部エラーも、私は夢中になります...
これらはこれまでの私の試みです。オプションのルックビハインドを試し、結果で更新します...とにかく、これらの正規表現が内部エラーを引き起こす理由を理解したいと思います。
そして、誰かが「htaccessの特別な正規表現の例外」リファレンスまたは私が読まなければならないようなものについて知っているなら、非常に歓迎されます。
みなさん、よろしくお願いします。