我已经构建了一个内部应用程序,需要在公共文件夹中启动,目录结构如下
myapp/conf
myapp/tmp
myapp/doc
myapp/public
myapp/public/css
myapp/public/js
myapp/public/index.php
如果用户将其安装在 webroot 子目录中,而不是将 myapp/public 设置为 webroot,则 URL 将是
某个主机/myapp/public/index.php
如何使用 /myapp/.htaccess 进行重定向,以便将所有内容转发到 /public/index.php,但同时也会更改 URL 以包含 /public。
我已经弄清楚如何重定向到公共,但由于我在 /public/ 中进行 URL 重写,所以我需要 $_SERVER['REQUEST_URL'] 在路径中包含 /public/ 。
我想阻止访问其他所有内容(/conf 和 /doc 等..)
运气好的话?
我尝试过的:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule (.*) index.php/$1 [R=301,L]
RewriteRule ^$ public [L]
</IfModule>
但这似乎之前公开过myapp
网址如下所示:localhost/public/myapp/
,相反我需要localhost/myapp/public/
简单来说,我希望 /whatever/* 的所有 URL 都附加 public /whatever/public/*。
该解决方案需要独立于域名和“myapp”名称。他们可以将根文件夹命名为“myapp”,但它始终会有一个名为“public”的子目录。