我在zend-framework 1.9.7上构建了一个站点。我想为每个网页制作友好的网址,其网址类似于:http://mysite/search/detail/id/124
我希望友好的网址如下:http://mysite/search/detail/ram
其中“ram”是id = 124
的用户名我在.htaccess文件中包含RewriteRule ^name/(.*)/$ guid/$1
,但它不起作用。
答案 0 :(得分:6)
我建议您查看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
是一个填充了所需网址的值ram
的参数,稍后可以使用$request->getParam('name');
进行检索。
答案 1 :(得分:0)
ZF中的控制器具有从自定义路由调用的功能。您可以找到文档here。它们为您提供了多种选择,可以选择您想要使用的路线。它可以是漂亮的URL,如博客甚至REST端点中的URL。
你不必乱用htaccess文件,因为所有对非静态资源的调用都是通过index.php进行的。
答案 2 :(得分: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
该插件非常易于使用。
拥抱!