如何将zend框架应用程序放在wordpress网站中

Sto*_*mov 5 php apache wordpress zend-framework

最近我用PHP为一家小公司创建了一个应用程序(销售门户).该公司有一个用word press开发的网站.由于我没有使用word press按照我在网站中嵌入我的应用程序的方式,我只是在主机上创建了一个子目录并在那里上传了我的应用程序.例如:

domainname.com - 他们的网站

domainname.com/portal - 我的应用程序所在的位置('index.php'文件).

自从我学习Zend Framework 1.8一个月以来,我想在Zend框架中重写门户网站,因为我从头开始编写门户网站,其核心并不像实现Zend框架那样安全.

我的问题是我可以将Zend框架应用程序包含在wordpress网站中,就像我使用'from-scratch'应用程序一样,通过在主机上创建子目录并在那里上传应用程序?如果是,我应该如何配置Zend应用程序,以便它将'domainname.com/portal'识别为域名(作为主目录).

我现在面临的问题是,当我输入http://www.domainname.com/portal/sales时,它会返回404,因为服务器上没有这样的目录.当然,我对上述链接(domainname.com/portal/sales)的意思是:

site:domainname.com/portal controller:sales action:index

我试过'domainname.com/portal/index.php/sales',但当有人打开这个链接'domainname.com/portal/'的门户时,点击的下一个链接(例如domainname.com/portal/sales)显示404 .

(注意:网站http://www.domainname.com也应该是可访问的)

提前致谢.

F21*_*F21 3

我相信 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>
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您需要修改该.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>
Run Code Online (Sandbox Code Playgroud)

基本上,它的作用是忽略子文件夹“portal”,并且不使用任何正常规则对其进行处理。

但是,可能有一个缺点:如果 WordPress 的未来版本更新了 .htaccess 文件,那么您将需要再次对该文件进行这些更改。