10

私は Zend フレームワークの初心者です。アプリケーションにルートを追加するために .ini ファイルを使用しています。

私は異なるモジュールのための2つのルートを持っています

resources.router.routes.news_view.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.news_view.route = "([0-9\-]+)/([a-zA-Z0-9\-]+)\.html"
resources.router.routes.news_view.defaults.module = "news"
resources.router.routes.news_view.defaults.controller = "index"
resources.router.routes.news_view.defaults.action = "view"
resources.router.routes.news_view.map.1 = "date"
resources.router.routes.news_view.map.2 = "title"

resources.router.routes.edu_view.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.edu_view.route = "([0-9\-]+)/([a-zA-Z0-9\-]+)\.html"
resources.router.routes.edu_view.defaults.module = "education"
resources.router.routes.edu_view.defaults.controller = "index"
resources.router.routes.edu_view.defaults.action = "article"
resources.router.routes.edu_view.map.1 = "date"
resources.router.routes.edu_view.map.2 = "title"

URLパターンは次のようになります

http://news.mysite.com/27-08-09/sample.html

http://education.mysite.com/27-08-09/sample.html

私が直面している問題は、最後に定義されたルートが両方のモジュールに割り当てられていることです。

誰でもこれに対する解決策を提案できますか。

4

2 に答える 2

15

こんにちは、ウェブを何度も閲覧した後、私の問題に対するこの解決策を思いつきました

resources.router.routes.www.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.www.route = ":module.findchennai.com"
resources.router.routes.www.defaults.module = "www"
resources.router.routes.www.chains.index.type = "Zend_Controller_Router_Route"
resources.router.routes.www.chains.index.route = ":controller/:action/*"
resources.router.routes.www.chains.index.defaults.controller = "index"
resources.router.routes.www.chains.index.defaults.action = "index"

上記のコードは、モジュールをサブドメインにマップします

resources.router.routes.news.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.news.route = "news.findchennai.com"
resources.router.routes.news.defaults.module = "news"

resources.router.routes.edu.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.edu.route = "education.findchennai.com"
resources.router.routes.edu.defaults.module = "education"

resources.router.routes.edu.chains.list.type = "Zend_Controller_Router_Route"
resources.router.routes.edu.chains.list.route = ":categ/:page"
resources.router.routes.edu.chains.list.defaults.controller = "index"
resources.router.routes.edu.chains.list.defaults.action = "category"
resources.router.routes.edu.chains.list.defaults.page = 1

resources.router.routes.news.chains.list.type = "Zend_Controller_Router_Route"
resources.router.routes.news.chains.list.route = ":categ/:page"
resources.router.routes.news.chains.list.defaults.controller = "index"
resources.router.routes.news.chains.list.defaults.action = "category"
resources.router.routes.news.chains.list.defaults.page = 1

これにより、私が直面した問題が解決され、次の URL に正しくマップできるようになりました

http://news.mysite.com/27-08-09/sample.html
http://education.mysite.com/27-08-09/sample.html

それでも、上記のコードをさらに最適化する方法を知っている人がいたら、教えてください。

于 2009-09-01T07:51:18.033 に答える
0

両方のサブドメインが同じ index.php を呼び出しますか?

両方のサブドメインに両方のルートを設定するのではなく、適切なサブドメインに基づいてルートを設定するだけではない場合。

$_SERVER['HTTP_HOST'] 変数から読み取り、サブドメインに基づいて正しいルートを設定するか、.htaccess ファイルに環境変数を設定して、自分がどのサブドメインにいるのかを確認できるようにする場合。

于 2009-08-27T14:21:28.747 に答える