这可能是一个常见的问题,但我找不到答案。
我有一个使用 Zend Framework 的 PHP 应用程序。假设我们在my-app
主机下运行应用程序,源文件位于本地文件系统的/my-path/my-app
下。下面是 Apache 虚拟主机配置:
<VirtualHost *:80>
ServerName my-app
DocumentRoot "/my-path/my-app/public"
<Directory "/my-path/my-app/public">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
目录中.htaccess
文件包含以下重写规则public
:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
到目前为止,所有采埃孚应用的标准。
现在,我需要在 url 子文件夹(例如 foo
)下运行此应用程序,即在 http://my-app/foo/
下而不是 http://my-app/
下。
我需要更改什么才能完成这项工作?最佳实践是什么?
假设从应用程序生成具有基本 URL 的 URL 不是问题。并且还假设应用程序将重写所有URL,包括应用程序的css/js源的链接。
谢谢!
好的,所以在玩了一会儿之后,我找到了简单的解决方案。所需要的只是在 Apache 虚拟主机配置中添加一个别名:
<VirtualHost *:80>
ServerName my-app
DocumentRoot "/my-path/my-app/public"
<Directory "/my-path/my-app/public">
AllowOverride All
Require all granted
</Directory>
Alias /foo /my-path/my-app/public
</VirtualHost>