2011-07-14 5 views
0

私はすべてのセグメントをルーティングしようとしていますが、例外もあります。 私は経路したい:except(home | about | contact)。そんな感じ。正規表現のZendルータ

私はcodeigniterでこれを行うことができましたが、私はZend Frameworkで少し難しかったです。これは私が私のZendのプロジェクトのための私のroutes.xmlに持っているものである

$route['^(?!home|about|contact)\S*'] = "category";

:CodeIgniterのでは私は私のconfigsで/ routes.phpのファイルをこの行を記述します。

のzfdedコメントに基づいて回答を追加
<category> 

      <type>Zend_Controller_Router_Route_Regex</type> 

     <route>(?!home|about|contact)</route> 

     <defaults> 

      <controller>category</controller> 

      <action>index</action> 

     </defaults> 

     <reverse>%s</reverse> 

    </category> 
+1

本当に簡単なことをしようとするとどうなりますか?普通の「家庭」は「家」に首尾よくマッチしますか?その後、 'home | about'を試し、問題を特定する正規表現を徐々に構築します。 –

+0

私は私の問題を解決しました。私の定義では、私はcodeigniter ^(?! home | about | contact)\ S *で使用した正規表現全体を含める必要がありました。だから私は(^(?!ホーム|約|連絡先)\ S *)を持っていて、すべてのURLは自宅や約または連絡先を含んでいない私のカテゴリコントローラに行くでしょう。とにかくありがとう。 – WingLeung

答えて

0

<route>(^(?!home|about|contact)\S*)</route> 

が正しいルートでなければなりません。