限制codeigniter中的url_suffix

时间:2014-01-25 21:19:56

标签: php .htaccess codeigniter codeigniter-2

我使用的是codeigniter 2.1.4,并设置了$config['url_suffix'] = ".html";

没有任何麻烦,它工作正常。但我发现,如果我使用redirect();功能,则会始终在着陆页网址上添加url_suffix。例如: site.com/login/success.html

我的问题是在使用url_suffix功能时排除redirect()?或者无论如何在没有在codeigniter中设置url_suffix的情况下添加.html,可能在.htaccess中有些黑客?

我尝试添加

RewriteEngine On
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{3,4}
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1.html

在项目htaccess文件中,但是一旦我取消设置url_suffix变量,框架就会抛出404错误。有什么工作吗?

谢谢:)

1 个答案:

答案 0 :(得分:5)

您可以将url_suffix配置留空$config['url_suffix'] = '';并定义特定路由以在某些情况下添加.html后缀。

例如,对于博客文章:

routes.php (默认情况下位于application/config/

$route['blog/(.+)\.html'] = "posts/view_post/$1";
/*                           ^     ^         ^
                             |     |         |
                Controller ---   Method      --- Post SEO url or ID
*/