我在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
,但它不工作。
我在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
,但它不工作。
我建議你看一看它通過建立標準的路由(這已經是不錯的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');
後進行檢索上。
控制器在ZF具備的功能,從定製路由調用。你可以找到文檔here。他們爲您提供了多種選擇來選擇您想要使用的路線類型。它可以是像博客或REST端點那樣的漂亮URL。
你不必與此htaccess的文件作爲非靜態資源所有呼叫亂七八糟通過的index.php反正執導。
有一個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
該插件是超級簡單易用的。
擁抱!