私は長い間CIでコーディングしていませんでしたが、私はこれまでより少し動的にしたルートのいくつかを書き直したいと思います。CodeIgniter Route - 正規表現はすべて一致します
何らかの理由で、私が追加したこの正規表現はすべて一致してしまい、理由を理解できません。
$route['([a-z]+-[a-z]+)'] = 'Main/example_function/$1';
これは、複数のフラグメントがあってもまだ割り当てられていない他のすべてのルートと一致します。経路の例として、それが一致します。
example.com/aaaaa
example.com/aaaaa-asd
example.com/aaaaa/aaaa
を私はそれが特にこのスタイルのルートを照合する必要があります。
example.com/aaaaa-aaaaa
私は別のルートではなく、フォームのexample.com/test/の他の正規表現を持っています([az] +)とうまく動作します。
宣言された他のルートの後に置くことは、すべてのルートがそこで宣言されているわけではないので、オプションではありません。
ありがとうございます!
@SahilGulatiが提案したルールを使用し、そのルールを最後に置く - 最後のルールにする。 – Tpojka
@Tpojka私が説明したように、最後のルールかどうかは重要ではありません(私は現在、最後のルールとして持っています)。 –
CIルータは、urlをスラッシュ(セグメント)で解析しています。 concize regexp ruleはありますが、それはまだ1つのセグメントであり、2つ以上のセグメント化されたルートの後にそれを保持することが賢明でしょう。 – Tpojka