Как разместить приложение Zend Framework на веб-сайте WordPress - PullRequest
5 голосов
/ 09 марта 2012

Недавно я создал приложение (портал продаж) на PHP для небольшой компании. У компании был веб-сайт, разработанный в прессе. Поскольку я не работал с Word Press, как я встроил свое приложение в веб-сайт, я просто создал подкаталог на хосте и загрузил туда свое приложение. Например:

domainname.com - их сайт

domainname.com / portal - место, где находится мое приложение (файл index.php).

Уже месяц я изучаю Zend Framework 1.8 и хочу переписать портал в Zend Framework, так как я написал портал с нуля, и его ядро ​​не так безопасно, как было бы, если бы оно реализовало Zend Framework.

У меня вопрос, могу ли я включить приложение Zend Framework на веб-сайт WordPress, как я делал это с помощью приложения «с нуля», создав подкаталог на хосте и загрузив там приложение? И если да, то как мне настроить приложение Zend так, чтобы оно распознавало domainname.com/portal в качестве имени домена (в качестве домашнего каталога).

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я набираю http://www.domainname.com/portal/sales, она возвращает 404, потому что на сервере такого каталога нет. Конечно, я имею в виду вышеупомянутую ссылку (domainname.com/portal/sales):

site: domainname.com/portal контроллер: продажи действие: индекс

Я пробовал «domainname.com/portal/index.php/sales», но когда кто-то открывает портал с этой ссылкой «domainname.com/portal/», следующая ссылка, на которую нажимают (например, domainname.com/portal/sales) ) показывает 404.

(примечание: веб-сайт http://www.domainname.com также должен быть доступен)

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

Ответы [ 2 ]

3 голосов
/ 09 марта 2012

Я считаю, что WordPress использует .htaccess для перенаправления всех URL-адресов на его index.php.

Это .htaccess, который я извлек из тестовой установки:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

InВ вашем случае вам нужно изменить файл .htaccess, чтобы его не заботило, что находится в http://domainname.com/portal.

В вашем случае ваш файл .htaccess может выглядеть так:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} "/portal/"
RewriteRule (.*) $1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

По сути, это то, что он игнорирует подпапку 'portal' и не обрабатывает ее ни по одному из нормальных правил.

Однако может быть и обратная сторона: если будущие версии Wordpressобновит файл .htaccess, затем вам нужно будет снова внести эти изменения в файл.

1 голос
/ 09 марта 2012

[C] а Я встраиваю приложение Zend Framework в веб-сайт WordPress, как я делал это с помощью приложения «с нуля», создавая подкаталог на хосте и загружая приложение там?

Да, вы можете.

[H] Теперь я должен настроить приложение Zend так, чтобы оно распознавало domainname.com/portal как имя домена (домашний каталог) [?]

Конечно, см. Базовый URL и подкаталоги Документы как вам нужно настроить запрос / маршрутизацию для вашего приложения на основе Zend Framework.

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