从cakephp中的Url中删除操作名称?

时间:2012-12-28 13:12:11

标签: php .htaccess cakephp

  

可能重复:
  How to remove action name from url in cakephp?

我正在使用cakephp在Cakephp中开发我的网站,我想从应用程序URL中删除操作(或查看)名称,我该怎么办呢。 我的要求是我想最近添加参数代替视图名称我的网址如下:

  

“域名/ controllername /视图名称/参数1 / param2的”

但我需要

  

“域名/ controllername /参数1 / param2的”

我的.htaccess文件如下所示

根文件夹中的

.htaccess

<IfModule mod_rewrite.c>
   RewriteEngine on 
   RewriteRule    ^$     [L]
   RewriteRule    (.*) app/webroot/index.php/$1 [L]
</IfModule>

.htaccess在app文件夹中

 <IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /liberty_new/app/
  RewriteRule    ^$    webroot/index.php/    [L]
  RewriteRule    (.*) webroot/index.php/$1    [L]
 </IfModule>
webroot文件夹中的

.htaccess

<IfModule mod_rewrite.c>
 RewriteEngine ON
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ /$1 [QSA,L]
</IfModule>

1 个答案:

答案 0 :(得分:1)

您可以在Config\routes.php文件中执行此操作。设置Router参数以根据需要编写URL。不要编辑你的htaccess文件,否则它会破坏CakePHP路由。

Router::connect('/:controller/:param1/:param2', array('action' => 'index'), array('param1' => '[a-zA-Z0-9]+', 'param2' => '[a-zA-Z0-9]+'));

这应该将所有请求者发送到任何控制器到该控制器的索引函数并传递参数1和2.当然,这可以大量定制。我强烈建议你阅读文档中的路由,除非必须,否则永远不要改变htaccess。

http://book.cakephp.org/2.0/en/development/routing.html#routes-configuration