Возможный дубликат:
Как удалить имя действия из url в cakephp?
Я использую cakephp для разработки моего сайта в Cakephp, и я хотел бы удалить имя действия (или просмотреть) из URL-адреса приложения, что я должен сделать для этого. Мое требование: я хочу добавить параметры вместо имени вида недавно мой URL-адрес похож:
"Имя_домен / controllername / ViewName / param1 / param2"
но мне нужно
"ДОМЕН / controllername / param1 / param2"
Мои файлы .htaccess выглядят следующим образом:
.htaccess в корневой папке
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ [L] RewriteRule (.*) app/webroot/index.php/$1 [L] </IfModule>
.htaccess в папке приложения
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /liberty_new/app/ RewriteRule ^$ webroot/index.php/ [L] RewriteRule (.*) webroot/index.php/$1 [L] </IfModule>
.htaccess в папке webroot
<IfModule mod_rewrite.c> RewriteEngine ON RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /$1 [QSA,L] </IfModule>
Вы делаете это в файле 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