cakephp 将 url 更改为新的 url
cakephp change url to new url
我有 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')
)
);
并在我的 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
文件的底部有这样的声明:
/**
* 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
行,您就应该准备就绪了
ptica 的回答很好,但是如果您想要的东西不会禁用 CakePHP 的所有默认路由,那么我会在 .htaccess 文件中添加重定向规则:-
Redirect 301 /frontend/login /user-login.html
.htaccess 是一个比在路由文件中放置重定向更好的地方,因为它会更有效率。不过,在路由文件中对此进行评论以供将来参考可能是个好主意;否则你或其他人有一天会看到这个项目并对重定向的内容感到困惑!
只要您:-
,按原样离开路线应该没有问题
- 始终使用 Cake 的 Router/HtmlHelper 生成链接,以便使用正确的别名
- 在页面上包含 canonical url 以便搜索引擎使用正确的 url
这样应用就永远不会引用 /frontend/login
。
我有 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')
)
);
并在我的 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
文件的底部有这样的声明:
/**
* 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
行,您就应该准备就绪了
ptica 的回答很好,但是如果您想要的东西不会禁用 CakePHP 的所有默认路由,那么我会在 .htaccess 文件中添加重定向规则:-
Redirect 301 /frontend/login /user-login.html
.htaccess 是一个比在路由文件中放置重定向更好的地方,因为它会更有效率。不过,在路由文件中对此进行评论以供将来参考可能是个好主意;否则你或其他人有一天会看到这个项目并对重定向的内容感到困惑!
只要您:-
,按原样离开路线应该没有问题- 始终使用 Cake 的 Router/HtmlHelper 生成链接,以便使用正确的别名
- 在页面上包含 canonical url 以便搜索引擎使用正确的 url
这样应用就永远不会引用 /frontend/login
。