2011-07-01 29 views
0

我在zend-framework 1.9.7上構建了一個站點。我想使友好的URL對於具有類似這樣的URL每一頁:http://mysite/search/detail/id/124在zend框架中創建友好的url

我希望友好的URL看起來像:http://mysite/search/detail/ram

其中,「公羊」是具有ID = 124的用戶名

我有包括.htaccess文件RewriteRule ^name/(.*)/$ guid/$1,但它不工作。

回答

6

我建議你看一看它通過建立標準的路由(這已經是不錯的URL提供的所有內容)的步驟走Zend Controller Quickstart

如果您想對路由更詳細的信息,那麼我建議看看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是被填滿的,你需要的URL值ram參數,並可與$request->getParam('name');後進行檢索上。

0

控制器在ZF具備的功能,從定製路由調用。你可以找到文檔here。他們爲您提供了多種選擇來選擇您想要使用的路線類型。它可以是像博客或REST端點那樣的漂亮URL。

你不必與此htaccess的文件作爲非靜態資源所有呼叫亂七八糟通過的index.php反正執導。

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 

該插件是超級簡單易用的。

擁抱!