0

URL の最初の部分をトリミングする必要があります

/param1/12234/module/controller/action は次のようになります/module/controller/action/param1/12234

で試しました

$router->addRoute('appid', new Zend_Controller_Router_Route('appid/:appid/:module/:controller/:action/', array(), array(2=> "モジュール", 3=> "コントローラー", 4=>「アクション」)));

しかし、うまくいきません!

いくつかは役立ちますか?

4

1 に答える 1

1

試す:

<?php

   //-------------------------
   // Get router from front
   // controller
   $router = $this->frontController->getRouter();

   //-------------------------
   // Create route
   $route = new Zend_Controller_Router_Route(
      'controller/action/:appid/:param1',
      array(
         'module' => default',
         'controller' => 'index',
         'action' => 'index',
         'appid' => '',
         'param1' => 'default_value'
      ),

      //-------------------------
      // You can even add a regex
      // to parameters. Example,
      // appid can only be an integer
      array(
         'appid' => '\d+'
      )
   );

   //-------------------------
   // Add route to Router
   $router->addRoute('appid', $route);
?>

もちろん、いくつかのもの (モジュール、コントローラー、アクション、およびパラメーター) を置き換える必要があります。モジュールを使用していない場合は、単に配列から削除してください。

最後に、ビューでルートを使用するには、次を使用できます。

$this->url(array('appid' => 1, 'param1' => 'custom_value'),'appid');

アップデート:

で次のことを試すことができます

<VirtualHost>

   RewriteEngine On
   RewriteRule ^/appid/(.*) /module/controller/action/$1 [R=301,L]
</VirtualHost>

永続的な 301 リダイレクトを使用する必要がない場合は、R を削除できます

于 2010-11-30T16:35:38.400 に答える