我想使用Zend Framework在单个虚拟主机上托管几个小项目。结构是:
apps/
testapp1/
application/
index.php,
testapp2/
application/
index.php
虚拟主机中的文档根目录如下:DocumentRoot /var/www/apps/
我需要一个统一的mod_rewrite规则,它会将/apps/testapp1/xxx
之类的网址转换为/apps/testapp1/index.php
。
我将非常感谢任何帮助,因为我试图解决这个问题几个小时。谢谢。
答案 0 :(得分:1)
如果您的网站DocumentRoot为/var/www/apps/
,那么我猜网址将是http://www.example.com/testapp1/ajax
而不是http://www.example.com/apps/testapp1/ajax
。如果是这样 - 那么您需要从这些规则中删除apps/
部分。
这些规则需要放在 .htaccess 的网站根文件夹中。
如果你已经有了一些规则,那么这些新规则需要放在正确的位置,因为规则的顺序很重要。
如果您还没有RewriteEngine On
行,可能需要添加/apps/testapp1/ajax
行。
此规则会将/apps/testapp1/index.php
重写为RewriteRule ^apps/testapp1/ajax$ /apps/testapp1/index.php [NC,QSA,L]
,其他网址不会受到影响:
/ajax
此规则会将以/index.php
结尾的所有网址重写为/apps/testapp1/ajax
(例如/apps/testapp1/index.php
=> /apps/testapp2/ajax
以及/apps/testapp2/index.php
=> { {1}}):
RewriteRule ^(.+)/ajax$ /$1/index.php [NC,QSA,L]
<强>更新强>
此“通用”规则会将/apps/testapp1/xxx
重写为/apps/testapp1/index.php
以及/apps/testapp2/something
=&gt; /apps/testapp2/index.php
:
RewriteRule ^(.+)/([^/\.]+)$ /$1/index.php [NC,QSA,L]