我为我正在处理的一个小项目创建了一个剥离框架,一切都很好,除了一个小问题。
我有这样的文件夹结构:
root
- app
- controller
- views
- webroot
- css
- js
- img
- misc
- config
- data
- lib
在根文件夹中,我有一个.htaccess
将请求重定向到webroot
文件夹的文件:
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
在那里,我有另一个.htaccess
文件,它检查请求是否是对文件或文件夹的直接请求,如果不是,它将传递到以下index.php
文件webroot
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !favicon.ico$
RewriteRule ^(.*)$ index.php?uri=$1 [QSA,L]
正如我所说,一切正常,但有一个小问题:
当您请求http://example.com/misc
时,它会将地址栏中的地址更改为http://example.com/app/webroot/misc/
.
当您请求时http://example.com/misc/
,这不会发生!
主要的一点是,为了项目的目的,人们需要直接访问“misc”文件夹中的文件,那里有一个index.html
文件,这意味着人们去http://example.com/misc
理想情况下不会重写 URL,它只会去文件。我这样做的原因对这个问题并不重要,所以在任何人说“你不应该这样设置你的文件夹”之前,我已经尝试了许多不同的方法,为了项目的目的,这是最好的方法。