我想将所有流量重定向到子目录,所以请求如下:
a)http://localhost/app/index.php/app/ctrl
b)http://localhost/app/media/image.jpg
将被重定向(对用户不可见)到:
a)http://localhost/app/public/index.php/app/ctrl
b)http://localhost/app/public/media/image.jpg
正如您所看到的,我的应用不是直接在根目录中,而是在子目录中。
这是我的文件结构:
/
app/
public/
media/
image.jpg
index.php
source/
.htaccess
otherapp/
我在/app/.htaccess工作 下面的IMO代码应该可以工作,不幸的是我找不到404
RewriteRule ^(.*)% "public/$1"
的access.log:
::1 - - [21/Mar/2017:15:23:21 +0100] "GET /app/index.php/app/ctrl HTTP/1.1" 200 6681 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0"
::1 - - [21/Mar/2017:15:23:30 +0100] "GET /app/media/image.jpg HTTP/1.1" 200 6681 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0"
有什么建议吗?
答案 0 :(得分:1)
在app/.htaccess
内使用此规则:
RewriteEngine On
RewriteRule ^(?!public/).*$ public/$0 [L,NC]
(?!public/)
是否为前瞻性,以检查URI是否已经没有说明/app/public/