我使用的是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错误。有什么工作吗?
谢谢:)
答案 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
*/