并行CodeIgniter和静态HTML和htaccess问题

时间:2009-08-27 17:43:47

标签: .htaccess codeigniter

问候,所有。

我正在运行与静态HTML站点并行的CI,其目录结构如下:

  • CI
  • 静态
  • user_guide
  • 的.htaccess
  • 的index.php

我在.htaccess文件中使用以下内容来获取静态文件。

RewriteEngine On
RewriteRule ^(application) - [F,L]

DirectoryIndex /static/index.html

RewriteRule ^([a-z0-9_-]+)\.html$ /static/$1.html [L]
RewriteRule ^images/([a-z0-9_-]+)\.gif$ /static/images/$1.gif [L]
RewriteRule ^images/([a-z0-9_-]+)\.jpg$ /static/images/$1.jpg [L]
RewriteRule ^css/([a-z0-9_-]+)\.css$ /static/css/$1.css [L]
RewriteRule ^js/([a-z0-9_-]+)\.js$ /static/js/$1.js [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

我把我的“资产”(图片,css等)放在静态目录结构中(因为我在CI视图中使用的大部分内容都是从现有网站借用的)。除了一件事之外,一切似乎都运转良好......

如果我希望包含一个JQuery插件,就像这样:

<script src="../../js/jquery.autocomplete.js"></script >

如果我尝试直接从浏览器地址栏中检索此文件,则不会提供此文件。

如果我将文件从“jquery.autocomplete.js”重命名为“autocomplete.js”,则可以通过浏览器地址栏中的请求检索此文件,但显然无法在我的javascript中加载并正常运行( javascript在精确调用autocomplete()函数的位置停止执行:

$("#fld").autocomplete("ajax/val", {
    width: 260,
    selectFirst: false
});

我已尝试过适用于/ js目录的RewriteRule规则的变体,但似乎没有任何工作 - 但我总是在.htaccess的黑暗中摸索。有人可以帮忙吗?

这是我尝试的最后一件事,它不起作用:

RewriteRule ^js/jquery\.([a-z0-9_-]+)\.js$ /static/js/jquery.$1.js [L]

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这是一个答案:

RewriteRule ^js/([a-z0-9_\.]+)\.js$ /static/js/$1.js [NC,L]