最近我用PHP为一家小公司创建了一个应用程序(销售门户)。该公司有一个用word press开发的网站。由于我没有使用word press,我将应用程序嵌入网站的方式是,我只需在主机上创建一个子目录,并将应用程序上传到那里。例如:
domainname.com-他们的网站
domainname.com/portal-是我的应用程序所在的位置("index.php"文件)。
一个月以来,我一直在学习Zend Framework 1.8,我想在Zend Framework中重写门户,因为我从头开始写门户,它的核心并不像实现Zend框架那样安全。
我的问题是,我可以像使用"从头开始"应用程序那样,在主机上创建一个子目录并上传应用程序,将Zend框架应用程序包含到wordpress网站中吗?如果是,我应该如何配置Zend应用程序,使其将"domainname.com/portal"识别为域名(作为主目录)。
我现在面临的问题是,当我打字时http://www.domainname.com/portal/sales它返回404,因为服务器上没有这样的目录。当然,我对上面提到的链接(domainname.com/portal/sales)的意思是:
网站:domainname.com/portal控制器:销售操作:索引
我尝试过"domainname.com/portal/index.php/sales",但当有人用"domainname.com/sportal/"链接打开门户时,下一个被点击的链接(例如domainname.com/sortal/sales)显示404。
(注:网站http://www.domainname.com也应可访问)
提前谢谢。
我相信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>
在您的情况下,您需要修改.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>
基本上,它所做的是忽略子文件夹"门户",不使用任何正常规则进行处理。
然而,可能也有不利的一面:如果wordpress的未来版本更新了.htaccess文件,那么你需要再次对该文件进行这些更改。
[C] 我将Zend框架应用程序嵌入wordpress网站,就像我使用"从头开始"应用程序一样,在主机上创建一个子目录并上传应用程序?
是的,你可以。
[H] 我应该如何配置Zend应用程序,使其将
domainname.com/portal
识别为域名(主目录)[?]
当然,请参阅基本Url和子目录文档如何为基于Zend Framework的应用程序配置请求/路由。