У меня есть программа CakePHP (версия 2.1.3), которая уже запущена (на Centos 6.x и Apache).
Теперь я хочу изменить URL-адрес с: http://domain.com/frontend/login
на новый URL вроде: http://domain.com/user-login.html
Я изменил route.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.
Как я могу сделать? пожалуйста, направьте мне детали.
Поблагодарить.
Ответ Ptica хороший, но если вы хотите что-то, что не отключает все маршруты по умолчанию CakePHP, я бы добавил правила перенаправления в файл .htaccess: —
Redirect 301 /frontend/login /user-login.html
.htaccess — лучшее место для размещения ваших перенаправлений, чем в файле маршрутов, поскольку он будет более эффективным. Вероятно, было бы неплохо добавить комментарий об этом в файл маршрутов для дальнейшего использования; в противном случае вы или кто-то еще однажды посмотрите на проект и будете сбиты с толку тем, что перенаправляет!
На самом деле не должно быть проблем с выходом из маршрута, если вы: —
Таким образом, приложение никогда не должно ссылаться /frontend/login
,
в нижней части вашего 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
линия, и вы должны быть все готово