如何向CodeIgniter应用程序添加一些静态路由?

时间:2010-09-16 17:54:28

标签: php apache mod-rewrite codeigniter

如何配置CodeIgniter应用程序,以便我可以拥有一个只提供静态(非MVC)html的目录?

我想以下列形式处理一些现有的链接:

http://mysite/contactform/contact.html?queryvars

/ contactform目录中包含子目录(只是一些css,js,images等)的任何内容都不应该通过CodeIgniter管道。处理这个问题的最佳方法是什么? (我通常是Windows开发者,所以说慢点)

我认为必须在重写配置中完成?

routes.php非常基础:

$route['default_controller'] = "home";

从.htaccess重写规则:

# you probably want www.example.com to forward to example.com -- shorter URLs are sexier.
#   no-www.org/faq.php?q=class_b
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteEngine on
RewriteCond $1 !^(index\.php|contact\.php|images|css|js|video|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

1 个答案:

答案 0 :(得分:0)

像这样修改.htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f告诉mod_rewrite忽略url,如果它是一个实际文件,RewriteCond %{REQUEST_FILENAME} !-d告诉它忽略它,如果它是一个目录。