2

私はすべてのURLをyiiの単一のURLに転送する方法を知る必要がありますすべてのリンクは単一のURLに移動しますメンテナンスメッセージを表示するためにこれが必要です

4

2 に答える 2

7

アップデート

Yii 1.1.16以降、古いコードサンプルは機能しなくなりました。新しいソリューションを提供してくれたJamesG(コメントを参照)に感謝します。コードサンプルが更新されました。


すでに理解しているcatchAllRequestように、yii内からこれを行うための最良の方法です。ドキュメントから明らかなように、このような場合のために特別に作成されています。それを使用すると、おそらくわずかなパフォーマンスの向上(以上urlManager)が得られる可能性がありますが、それが目立つとは思えません。

一方、を使用したい場合はurlManager、で試すことができます(コードサンプルのコメントも読んでください):

  1. バージョン1.1.16以降:

    '<url:(.*)>'=>'maintenance/index'
    
  2. バージョン1.1.15以下:

    '<url:(.*)>'=>'maintenance/index'
    
    // '(.*)'=>'maintenance/index' // this used to work in previous versions ...
    // of Yii (below 1.1.16) mainly due to a bug, see notes
    

注:これは、urlManagerのrulesアレイ構成の最初のルールである必要があります。

ただし、sl4mmerですでに説明したように、これを行うにはhtaccessまたはサーバー構成が最適です。サーバーは結局、要求をphpに送信する前に最初にキャッチするためです。


バグに関する注意:ここでgithubの問題を確認してください。

于 2012-09-29T13:28:30.477 に答える
0

最後に2つのオプションがあります。

  • .htaccess書き換えルールを使用する

  • urlManager任意のURLに一致するパターンでYiiのルールを使用します。

最初のオプションをお勧めします。これは、サーバー自体によって処理されるため、YiiやPHPにも影響を与えないため、パフォーマンスが向上し、セキュリティ違反の可能性から保護されます。

于 2012-09-25T05:55:59.657 に答える