cakephp将url更改为新url

cakephp将url更改为新url,php,cakephp,cakephp-2.1,Php,Cakephp,Cakephp 2.1,我有CakePHP程序(版本2.1.3),它已经在运行(在Centos 6.x和Apache上) 现在我想将url从:http://domain.com/frontend/login 到新url,如:http://domain.com/user-login.html 我更改了routes.php,如下所示: Router::connect( '/:slug.html', array('controller' => 'frontend', 'action' => 'l

我有CakePHP程序(版本2.1.3),它已经在运行(在Centos 6.x和Apache上)

现在我想将url从:
http://domain.com/frontend/login

到新url,如:
http://domain.com/user-login.html

我更改了routes.php,如下所示:

Router::connect(
    '/:slug.html', 
    array('controller' => 'frontend', 'action' => 'login'),
    array(
        'pass' => array('slug')
    )
); 
并在my login.ctp中添加了以下代码:

<?php 
 echo $html->link('user login', 
        array(  
            'controller' => 'frontend',    
            'action' => 'login',    
            'slug' => Inflector::slug('user login'))); 
?>

它成功了,现在我可以使用新的URL访问:
http://domain.com/user-login.html

但我仍然可以使用旧url访问:
http://domain.com/frontend/login

我只想访问新的URL,并删除旧的URL

我该怎么办?请告诉我细节


谢谢。

在您的
routes.php
文件的底部有以下声明:

/**
*加载CakePHP默认路由。如果不想使用,请删除此选项
*内置的默认路由。
*/
需要蛋糕。”配置'。Droutes.php';


只需注释掉
require
行,您应该已经准备好了

ptica的答案是很好的,但是如果您想要不禁用所有CakePHP默认路由的东西,那么我会将重定向规则添加到.htaccess文件中:-

Redirect 301 /frontend/login /user-login.html
.htaccess比routes文件中更适合放置重定向,因为这样会更有效。不过,最好在routes文件中对此发表评论,以供将来参考;否则,有一天你或其他人会看到这个项目,并对什么是重定向感到困惑

只要您:-

  • 始终使用Cake的路由器/HtmlHelper生成链接,以便使用正确的别名
  • 在页面上包含一个,以便搜索引擎使用正确的url

这样应用程序就不应该引用
/frontend/login

前端是控制器,登录是函数,如果你在url中同时写入控制器和操作,那么它是可访问的,如果用户打开此url,那么你需要将用户重定向到第二个url,或者你需要编写代码.httaccess文件我不知道如何更改.htaccess文件。你能告诉我如何配置.htaccess文件吗?我试图在.htaccess文件中像你的代码一样进行设置(在根文件夹中,与app文件夹相同)我无法打开链接:我的期望:打开链接:删除旧链接:我试图配置:RewriteRule^user-login.html/frontend/login/但仍然没有success@haicnpmk44您需要为此打开一个新的StackOverflow问题。确保在问题中显示.htaccess代码。此站点上有许多.htaccess专家。:-)