php Zend / MVC без mod_rewrite

Я видел, что это упоминалось во многих блогах в сети, но я думаю, что это должно быть обсуждено здесь. Что мы можем сделать, когда у нас есть инфраструктура MVC (меня интересует ZEND) в PHP, но наш хост не предоставляет mod_rewrite? Есть ли какие-нибудь "короткие пути"? Можем ли мы передать управление каким-либо образом (чтобы между страницами могло отображаться отображение)? Есть идеи? Спасибо :-)

17.08.2008 16:06:03
5 ОТВЕТОВ
РЕШЕНИЕ

Zend Framework должен работать без mod_rewrite. Если вы можете жить с вашим URL: он выглядит больше как "/path/to/app/index.php/controller/action". Если бы у вас был mod_rewrite, вы могли бы покончить с битом index.php, но он также должен работать.

Все дело в настройке маршрутов для принятия части index.php.

4
17.08.2008 18:14:22

mod_rewrite почти необходим в современной среде хостинга .. но, к сожалению, не все получили сообщение.

Многие крупные php-программы (я думаю, magento, но большинство могут справиться) имеют режим отката довольно-таки для случая, когда mod_rewrite недоступен.

URL в конечном итоге выглядят как www.site.com/index.php?load-this-page

Они должны запустить какую-то магию, чтобы получить имя переменной из переменной $ _GET и использовать его в качестве селектора для того, какой модуль / функцию выполнить.

В соответствующей заметке я видел много испорченных URL на новом сайте facebook, где он использует #. Поэтому ссылки выглядят как www.new.facebook.com/home.php#/inbox/ Ясно, что мы не должны этого видеть, но это предполагает, что они, вероятно, анализируют переменную $ _SERVER ['REQUEST_URI'].

0
17.08.2008 17:18:12

Если вы можете найти не-mod_rewrite способ перенаправления всех запросов в index.php (или там, где находится ваш скрипт инициализации), вы можете, как упоминалось выше, использовать REQUEST_URI, чтобы получить часть адреса после домена, а затем проанализировать сделайте так, как вам нравится, и сделайте запрос, сделайте то, что вы хотите. Вот как это делает Wordpress (предоставлено, с mod_rewrite). Пока вы можете перенаправлять запросы на страницу индекса, сохраняя тот же URI, вы можете делать все, что вам нужно для обработки запроса.

0
17.08.2008 18:07:22

ОК, мой вердикт :-): Я успешно использовал Zend без mod_rewrite, и это, как вы уже сказали, site / index.php / controller / action. Я знал это до публикации этого. Я также обнаружил в сети методику, которая «выталкивает» 404 страницы в index.php, поэтому туда попадает то, что не является ресурсом (например, CSS, изображение и т. Д.), За одним исключением: значения POST. Поэтому я решил, что в следующий раз приложение должно быть сделано на конкретном сервере, чтобы вежливо попросить mod_rewrite. Если администратор не может это предоставить, поговорите с моим начальником или, если это для меня, смените поставщика. Как правило, иногда бывает стыдно, что рынок PHP так сильно фрагментирован (php4, php5, php6, mod_rewrite, mod_auth, mod_whwhat), но это другая история ...

1
31.08.2008 15:58:47

Правила переписывания Drupal перевести

http://example.com/path/goes/here

в

http://example.com/index.php?q=path/goes/here

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

-2
5.11.2008 23:44:07