API URL mod_rewrite - PullRequest
       3

API URL mod_rewrite

0 голосов
/ 15 февраля 2011

Я использую Zend Framework для создания API

Я хочу использовать apache mod_rewrite, чтобы немного изменить некоторые URI, но я все еще на уровне n00b в Apache rewite's

В настоящее время я использую файл ZF .htaccess по умолчанию, чтобы удалить файл index.php и симпатичные URI:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

В настоящее время URI выглядит следующим образом:

http://domain.com/module/index/action/id/5/format/json

Что я хотел бы сделать:

  • Если контроллер (после / module) равен " index ", его следует удалить из URI.
  • Если после действия есть int / параметр " id " должен быть удален и только передать значение.
  • И, наконец, я хотел бы добавить формат в качестве суффикса к концу URI например ... / action / 5.json

Итакчто, когда я получу следующий URI:

http://domain.com/module/action/5.json

, он все равно будет указывать на:

http://domain.com/module/index/action/id/5/format/json

Возможно ли сделать все это одним оператором?
илилучше ли добавить собственный маршрут в ZF Bootstrap?

1 Ответ

0 голосов
/ 15 февраля 2011

Как правило, в приложении Zend Framework единственная перезапись URL-адресов, которая выполняется с использованием Apache mod_rewrite на уровне .htaccess, - это перезапись, имеющаяся в вашем вопросе.Это проталкивает все запросы через платформу, которая затем имеет собственный внутренний механизм для обработки запроса.

Этот внутренний процесс сопоставления URL-адреса с тройкой (модуль, контроллер, действие) и установки параметров запроса называется «маршрутизацией».».Zend Framework позволяет вам определять собственные маршруты.

Как правило, маршруты определяются на этапе начальной загрузки;в конце концов, это должно быть сделано на ранней стадии процесса, чтобы система могла определить, какой контроллер необходимо создать для обработки запроса.

Документация ZF для маршрутизации описывает это очень хорошо.

В заключение: Лучше всего сделать это по пользовательскому маршруту, определенному в приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...