php - 限制 codeigniter 中的 url_suffix

标签 php .htaccess codeigniter codeigniter-2

我正在使用 codeigniter 2.1.4 并且我已经设置了 $config['url_suffix'] = ".html";

它工作正常,没有任何问题。但我发现如果我使用 redirect(); 函数将始终在着陆页 url 上添加 url_suffix。例如:site.com/login/success.html

我的问题是在使用 redirect() 函数时无论如何都要排除 url_suffix 吗?或者是否有添加 .html 而不在 codeigniter 中设置 url_suffix,可能是 .htaccess 中的一些 hack??

我尝试添加

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

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

谢谢:)

最佳答案

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

例如,对于博客文章:

routes.php (默认位于application/config/):

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

关于php - 限制 codeigniter 中的 url_suffix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21356392/

相关文章:

php - Codeigniter - Ajax Post 不工作

php - $this->db->like 不过滤结果

php - 如何进行排除自定义属性集以附加模型的 Eloquent 查询?

php - 使用 php 的阿拉伯语 Mysql 排序规则

php - MySQL 没有正确计算基于日期值的行

regex - 尝试在同一个端口设置域和子域。 (NGINX)

.htaccess - htaccess : Mediafire. com 类似 url

javascript - 阻止直接访问 js、css 文件但允许从 index.html 访问?

javascript - base_url() 在 ckeditor config.js 文件中使用

php - 如何使用条件语句将两个搜索结果语句合为一个?