PHP:Zendのルート正規表現と無効なコントローラ私はルートを追加する方法を持っている
public function addRoutes()
{
$front = Zend_Controller_Front::getInstance();
$redirect = $front->getRouter();
$router = new Zend_Controller_Router_Route_Regex(
"p\/(a-zA-Z0-9)\.htm",
array(
'controller'=>'page',
'action'=>'index',
1=>'ja.htm'
),
array(1 => 'page_name')
);
$route2 = new Zend_Controller_Router_Route_Regex("(a-zA-Z0-9)\.html",
array('controller'=>'page',
'action'=>'index',
1=>'ja.html'),
array(1=>'page_name'));
$redirect->addRoute('pages',$router);
$redirect->addRoute('hmtmled',$route2);
$front->setRouter($redirect);
}
私のようなURLを入力しようとした:P/ja.htmが、私はエラーを取得:無効なコントローラは、指定された(p)を。私はデフォルトルートの理由からそのことを知っていますが、それをどのように変更するのですか?
:@Tim噴水が鋭くコメントで指摘するよう
また、正規表現をする必要があります'p /(a-zA-Z0-9)\ .htm'? –
あなたのパターンは 'p /'の後に_single_ alphanum charだけを受け入れます。 'p /(a-zA-Z0-9)+ \。htm' –
私のパターンがp /(a-zA-Z0-9)であっても、 )+ \ .htm p /(\ w + \ d +)\ .htmのようなオプションを指定しても同じエラーが発生する。htmはまだ失敗するので、regexpのエラーとは思わない。 – Axxxon