我已经建立了一个需要在公共文件夹中启动的内部应用程序,目录结构如下
myapp/conf
myapp/tmp
myapp/doc
myapp/public
myapp/public/css
myapp/public/js
myapp/public/index.php
如果用户将其安装在 webroot 子目录中,而不是将 myapp/public 设置为 webroot,则 URL 将是
somehost/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”的子目录。