-2

重複の可能性:
Cakephp の URL からアクション名を削除するには?

Cakephp で自分の Web サイトを開発するために Cakephp を使用しています。アプリケーションの URL からアクション (またはビュー) 名を削除したいと考えています。私の要件は、ビュー名の代わりにパラメーターを追加したいということです。最近私の URL は次のようになります。

「ドメイン名/コントローラ名/ビュー名/param1/param2」

しかし、私は必要です

「ドメイン名/コントローラ名/param1/param2」

私の .htaccess ファイルは以下のようなものです

ルートフォルダーの .htaccess

<IfModule mod_rewrite.c>
   RewriteEngine on 
   RewriteRule    ^$     [L]
   RewriteRule    (.*) app/webroot/index.php/$1 [L]
</IfModule>

app フォルダー内の .htaccess

 <IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /liberty_new/app/
  RewriteRule    ^$    webroot/index.php/    [L]
  RewriteRule    (.*) webroot/index.php/$1    [L]
 </IfModule>

webroot フォルダー内の .htaccess

<IfModule mod_rewrite.c>
 RewriteEngine ON
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ /$1 [QSA,L]
</IfModule>
4

1 に答える 1

1

ファイルでこれを行いConfig\routes.phpます。必要に応じて URL を書き込むように params を設定しRouterます。htaccess ファイルを編集しないでください。編集すると CakePHP のルーティングが壊れる可能性があります。

Router::connect('/:controller/:param1/:param2', array('action' => 'index'), array('param1' => '[a-zA-Z0-9]+', 'param2' => '[a-zA-Z0-9]+'));

これにより、任意のコントローラーへのすべてのリクエストがそのコントローラーのインデックス関数に送信され、パラメーター 1 と 2 が渡されます。もちろん、これは大幅にカスタマイズできます。ドキュメントのルーティングについて読んで、必要がない限り htaccess を変更しないことを強くお勧めします。

http://book.cakephp.org/2.0/en/development/routing.html#routes-configuration

于 2012-12-28T13:19:48.397 に答える