我为我正在开发的一个小型项目创建了一个剥离框架,除了一个小问题外,一切都很顺利。.htaccess - 尾部斜杠中断重定向
我的文件夹结构,如下所示:
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
文件检查该请求是否是文件或文件夹的直接请求,如果不是,则传递到webroot
中的index.php
文件:
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/
,这不会发生!
主要的一点是,该项目的目的,人们会需要直接访问在“杂项”文件夹中的文件,在那里有一个index.html
文件,这意味着人们去http://example.com/misc
理想就没有重写URL,它只会去该文件。我有这样做的原因,这对于这个问题并不重要,所以在任何人走之前“你不应该让你的文件夹设置成这样”我已经尝试了很多不同的方式来做这件事,为了项目的目的,这是最好的方式来做到这一点。
奇之前添加此,我想这样做它的其他方式,加上斜杠的URL,但我从来没有想过的简单剥离/应用程序/ webroot的部分出! – 2012-08-12 19:50:02