我在 CI 中找到了很多 URL 重写的示例,但不是最终的好解决方案,我有这样的 url
www.somesite.com/index.php/tehnicki/tekstovi
我想要这样的网址
www.somesite.com/about.html
这个是GET 变量,在 MySql 查询中,它不会是数字,它会是一些 NAME,怎么做?
我必须在 tehnicki 控制器中编写以获取该 GET 变量,在 CI 中是否有任何用于 MySQL 攻击的助手,或者我必须自己编写:)
我在 CI 中找到了很多 URL 重写的示例,但不是最终的好解决方案,我有这样的 url
www.somesite.com/index.php/tehnicki/tekstovi
我想要这样的网址
www.somesite.com/about.html
这个是GET 变量,在 MySql 查询中,它不会是数字,它会是一些 NAME,怎么做?
我必须在 tehnicki 控制器中编写以获取该 GET 变量,在 CI 中是否有任何用于 MySQL 攻击的助手,或者我必须自己编写:)
好吧,让我们看看,它似乎一团糟,没有意义,但我会给你你需要的。
首先,我们必须删除 index.php 文件: - 将其用作 .htaccess
//.htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|Skin|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
接下来,在您的 config.php 中将 index_page 设置为空字符串
// application/config/config.php
$config['index_page'] = '';
在同一个文件上,滚动到 url_suffix,并将其设置为 .html
// application/config/config.php
$config['url_suffix'] = '.html';
现在前往您的 routes.php 并应用重写规则
// application/config/routes.php
$route['about'] = "tehnicki/tekstovi";
我将快速解释我在这里做了什么,以便您了解它是如何工作的:1-我们删除了 url 的 index.php 部分以清理它 2-我们添加了一个将在所有页面上生成的 url 后缀 3-我们应用了一个重写规则,它将匹配 /about.html 到控制器 tehnicki 和动作 tekstovi (tehnicki/tekskovi)