【问题标题】:cakephp change url to new urlcakephp 将 url 更改为新 url
【发布时间】:2015-05-22 03:11:54
【问题描述】:

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

现在我想更改网址:http://domain.com/frontend/login

到新的网址,例如:http://domain.com/user-login.html

我改变了 routes.php 如下:

Router::connect(
    '/:slug.html', 
    array('controller' => 'frontend', 'action' => 'login'),
    array(
        'pass' => array('slug')
    )
); 

并在我的 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

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

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

我该怎么办?请指导我详细信息。

谢谢。

【问题讨论】:

  • 前端是控制器,登录是函数,如果你在 url 中编写控制器和操作,那么它是可访问的,如果用户打开它,那么你需要将用户重定向到第二个 url 或者你需要编写代码。 httaccess 文件
  • 我不知道如何更改 .htaccess 文件。你能告诉我如何配置 .htaccess 文件吗?

标签: php cakephp cakephp-2.1


【解决方案1】:

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

Redirect 301 /frontend/login /user-login.html

.htaccess 是一个比路由文件更好的放置重定向的地方,因为它会更有效。不过,在路由文件中对此发表评论以供将来参考可能是个好主意;否则你或其他人有一天会看到这个项目并且对重定向的内容感到困惑!

只要您:-

  • 始终使用 Cake 的 Router/HtmlHelper 生成链接,以便使用正确的别名
  • 在页面上包含canonical url,以便搜索引擎使用正确的网址

这样应用就永远不会引用/frontend/login

【讨论】:

  • 我尝试在 .htaccess 文件中设置您的代码(在根文件夹中,与 app 文件夹相同)我无法打开链接:domain.com/user-login.html 我的期望:打开链接:domain.com/user-login.html 删除旧链接:domain.com/frontend/login 我尝试配置:RewriteRule ^user-login.html /frontend/login/ 但仍然没有成功
  • @haicnpmk44 你需要为此打开一个新的 StackOverflow 问题。确保在问题中显示您的 .htaccess 代码。这个网站上有很多 .htaccess 专家。 :-)
【解决方案2】:

在您的routes.php 文件的底部有以下声明: /** * Load the CakePHP default routes. Remove this if you do not want to use * the built-in default routes. */ require CAKE . 'Config' . DS . 'routes.php';

只需注释掉 require 行,你就应该准备好了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-07
    • 2018-07-13
    • 2011-04-29
    • 1970-01-01
    • 2018-12-04
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多