2011-07-01 9 views
0

私はzend-framework 1.9.7でサイトを構築しました。私は、このようなURLを持つすべてのページのフレンドリURLを作りたい:http://mysite/search/detail/id/124zendフレームワークでフレンドリーなURLを作成する

私はフレンドリーURLは次のようになりたい:「ラム」は、IDを持つユーザーの名前ですhttp://mysite/search/detail/ram

= 124

.htaccessファイルにRewriteRule ^name/(.*)/$ guid/$1が含まれていますが、動作しません。

答えて

6

Zend Controller Quickstartを参照することをお勧めします。これは、標準のルーティング(既に素晴らしいURLのすべてを提供しています)を設定する手順を順を追って説明しています。

ルーティングに関する詳細情報が必要な場合は、Zend_Controller_Router's Manualをご覧ください。

具体的に私は、例えば、ルータのルートを通して、あなたのケースを処理します:

<?php 

$router = Zend_Controller_Front::getInstance()->getRouter(); 

$detailsRoute = new Zend_Controller_Router_Route("search/detail/:name", array(
    'controller' => 'search', 
    'action' => 'detail' 
)); 

$router->addRoute('searchDetail', $detailsRoute); 

一部:nameがあなたの価値ramで満たされますパラメータはURLを希望し、後で$request->getParam('name');で取得することができていますに。

0

ZFのコントローラには、カスタムルートから呼び出す機能があります。文書hereがあります。彼らは、あなたが使いたいルートの種類を選択するための多種多様なオプションを提供します。ブログやRESTエンドポイントのようなかなりのURLにすることができます。

非スタティックリソースへのすべての呼び出しがindex.phpによって指示されるため、このためにhtaccessファイルを使用する必要はありません。

0

には、このために非常にうまく機能するzendプラグインがあります。

<?php 
/** dependencies **/ 
require 'Zend/Loader/Autoloader.php'; 
require 'Zag/Filter/CharConvert.php'; 

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true); 

//filter 
$filter = new Zag_Filter_CharConvert(array(
    'replaceWhiteSpace' => '-', 
    'locale' => 'en_US', 
    'charset'=> 'UTF-8' 
)); 

echo $filter->filter('ééé ááá 90');//eee-aaa-90 
echo $filter->filter('óóó 10aáééé');//ooo-10aaeee 

このプラグインは使いやすいです。

ハグ!

関連する問題