代码点火器子目录问题
问题描述:
我试图让“TRAC”目录和它的所有子目录是通过URL访问http://www.domain.com/trac/代码点火器子目录问题
我与codeginiter框架的工作和我的目录结构看起来像
.htaccess
index.php
system
trac
我可以很好地访问abov网址,但问题是trac子目录中包含的脚本和其他文件,例如:trac/chrome/common/css/trac.css不可访问,404。这是我的.htaccess代码。请帮忙。
RewriteEngine On
RewriteRule ^$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond $1 !^trac/
RewriteRule ^trac/(.*) /trac/$1
答
如果您删除最后两行,它应该工作。
RewriteCond %{REQUEST_FILENAME} !-f
检查以确保您没有请求文件。如果你是,这个条件失败,规则RewriteRule ^(.*)$ index.php?/$1 [L]
永远不会执行。
答
重写规则,以便执行......所以试试这个
RewriteCond %{REQUEST_URI} !^/trac/
RewriteCond $1 !(index\.php/)
RewriteRule ^(.*)$ index.php?/$1 [L]
说明:
if the uri DOES NOT start with trac
if the uri IS NOT index.php
rewrite url as index.php?/{rest of the url}
答
你甚至都不需要提及/ TRAC /在你的.htaccess。这完全是点的
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
你正在设置两个“重写条件”。第一个说:“只要请求不是文件。”第二个说“或者只要请求不是目录。”
然后
RewriteRule ^(.*)$ index.php?/$1 [L]
发送其他一切的index.php,其中CI接管。和公正的记录,我的全部的.htaccess我在每一个项目中使用:
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
如果你感到困惑的RewriteCond %{REQUEST_URL} ^system.*
线,它只存在使任何浏览器请求到/系统/文件夹始终路由到index.php,因此被忽略。