Cakephp изменить поведение URL - PullRequest
0 голосов
/ 24 августа 2009

Мы разрабатываем сайт с использованием CakePHP. У нас есть сервер Windows IIS (виртуальный хостинг) с PHP5, который не поддерживает .htaccess или mod_rewrite, но сайт у нас запущен и работает, и мы разработали много вещей.

Текущая структура URL выглядит примерно так: MYDOMAIN / index.php / пользователь / добавить

Мы хотим изменить это на что-то вроде: MYDOMAIN / index.php? = контроллер пользователя и действие = добавить

Мы хотим сделать это, поскольку сталкиваемся с некоторыми неожиданными проблемами с истекшим сроком действия сеанса, и сомневаемся, что это происходит из-за того, что пользователь перемещается с одного URL-адреса на другой, например так: MYDOMAIN / index.php / пользователь / добавить в MYDOMAIN / index.php / список / редактировать это меняет домен для IIS или PHP, что приводит к истечению сеанса, но торт отлично интерпретирует страницы.

Если есть способ изменить вид Cake на URL-адреса с вопросом и символом амперсанда, это будет здорово.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 25 августа 2009

Вы можете попробовать что-то вроде этого:

1) укажите корневой каталог вашего документа IIS в app / webroot 2) Позвоните в вашу заявку, набрав http://site.com/index.php?url=/user/add

Что касается изменения его в controller = user & action = add, единственное, что я могу предложить, это добавить код в ваш файл index.php для перевода формата controller = user & action = add в формат url = / user / add , Вы также можете проверить маршрутизатор, чтобы увидеть, есть ли функции, которые вы можете использовать для изменения этих вещей.

Если вам нужна дополнительная помощь, я отправлю вопрос на irc.freenode.net # cakephp

0 голосов
/ 25 августа 2009

истечение срока сеанса не вызвано структурой URL. ты проверял?

  1. Configure :: write ('Session.timeout', '3600'); в core.php. сделать его длиннее
  2. Configure :: write ('Security.level', 'high'); в core.php. сделать его средним или низким
  3. Configure :: write ('Session.checkAgent', false); в core.php сделайте это ложным. может вызвать проблемы с вызовами ajax
...