我正在处理一个存在于Web根目录下的子目录中的应用程序。我的应用程序文件夹结构是:
website root/
|- index.php
|- my-application/
|- src/
|- index.php
|- tests/
|- vendor/
|- .gitignore
|- composer.json
|- phpunit.xml
根据这个stackoverflow question,src目录应该在根目录中。在这种情况下这是不可能的。
除了安装此应用程序时,应用程序的索引现在位于应用程序文件夹的src文件夹中。这意味着url将是localhost / application / src / index.php。
如何为应用程序索引文件localhost / application / index.php创建url?
我无法控制webroot。
答案 0 :(得分:2)
您的源文件布局应始终包含“src”(或“lib”或您要调用的任何内容)文件夹,其中包含所有必需的源代码,可能是包含第三方代码的“vendor”文件夹,以及“webroot”文件夹,这是此设置中唯一将通过Web服务器公开的文件夹。 E.g:
myapp/
src/
Acme/
MyApp/
...
vendor/
...
webroot/
index.php
css/
...
js/
...
您可以将此文件夹存储在任何您喜欢的位置。最后,您将Web服务器配置为提供myapp/webroot/
。您可以通过以下方式执行此操作:
将该文件夹符号链接到Web服务器的文档根目录:
/var/www/myapp -> /usr/local/myapp/webroot
使用mod_rewrite指令相应地重写请求:
RewriteRule /theapp/(.*) /usr/local/myapp/webroot/$1
相应地配置Web服务器的核心,以便从应用程序的目录中提供某些URL:
Alias /theapp /usr/local/myapp/webroot
# or whatever other way you prefer
您无需以任何方式将文件存储在文件系统中,就像显示URL一样。在URL和文件和/或程序响应之间处理此解决方案是Web服务器的工作,它提供了许多工具,使其在必要时具有灵活性。使用这些工具。