代码点火器子目录问题

问题描述:

我试图让“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,因此被忽略。