CI框架 CodeIgniter 伪静态 htaccess设置和Nginx伪静态方法 .

2024-04-29 16:32

本文主要是介绍CI框架 CodeIgniter 伪静态 htaccess设置和Nginx伪静态方法 .,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

众所周知,LAMP代表Linux下Apache、MySQL、PHP这种网站服务器架构;而LNMP指的是Linux下Nginx、MySQL、PHP这种网站服务器架构。LNMP一键安装包可以从网上下载使用。

Nginx(发音同 engine x)由 Igor Sysoev 用C语言为俄罗斯访问量第二的搜索引擎 Rambler.ru 站点开发,是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3/SMTP)代理服务器,其将源代码以类BSD许可证的形式发布,并在一个BSD-like 协议下发行。其特点是小巧高效,占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好。中国大陆使用Nginx网站用户有:新浪、网易、淘宝、腾讯等。Nginx第一个公开版本0.1.0发布于2004年10月4日。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,Nginx 1.0.4发布。由此可以看出使用LNMP架构的好处。

关于伪静态技术,最初是动态语言出现后为了解决用户访问的便利性和搜索蜘蛛的友好性。关于伪静态的组件有ISAPI_Rewrite、开源的IIRF等。但ISAPI_Rewrite Lite版只支持全局的httpd.conf的,不支持分布式的httpd.ini的,只有收费的Full版才支持分布式httpd.ini。现在我们知道,Nginx也能实现简单的伪静态。更多介绍伪静态可以 参考

CI在Apache、Nginx上运行需要.htaccess配置文件,在IIS服务器上则需要web.config文件,CI的伪静态我们可以通过.htaccess里面的规则设定

RewriteEngine on  
RewriteCond $1 !^(index\\.php|system\\.php|images|skin|js|ls|swfupload|attachment|application|robots\\.txt)  
RewriteRule ^(.*)$ /fx/index.php/$1 [L]
注: RewriteRule ^(.*)$ /webdir/index.php/$1 [L]里的webdir是你的CI程序目录

Nginx服务器伪静态设置首先需要设置nginx开启 path_info (LNMP默认已开启)
,可以参考以下来自ZK的方法:

假设我们的子目录名称为 zk
        location /zk/ {
        root   /var/www/html/;
        index index.html index.htm index.php;
        if ($request_filename !~* /giftbox/(javascript|css|images|style|upimg|artDialog|fckeditor|userfiles|crontab|robots\.txt|index\.php)) {
        rewrite ^/(.*)$ /zk/index.php?$1 last;
        }

root 的目录路径为您的根目录路径 不需要更改。

另外附上主目录伪静态规则

        #rewrite ^/$ /index.php last;
        #一下是防止某些文件夹被直接访问
        #rewrite ^/(?!index\.php|images|robots\.txt|js|css|upimg|artDialog|style)(.*)$ /index.php/$1 last;


首先需要设置nginx 开启 path_info (lnmp默认已经开启path_info)

伪静态规则:

if ($request_uri ~* ^/system)
{
 rewrite ^/(.*)$ /index.php?/$1 last;
 break;
}

if (!-e $request_filename)
{
 rewrite ^/(.*)$ /index.php?/$1 last;
 break;

}


在网上查到的资料很多人都说nginx目前不支持.htaccess文件来做伪静态,小子也觉得不应该,作为世界上轻量级最好用的WEB服务器,Nginx应该可以的,谷歌了一下,找到了nginx完全可以支持.htaccess文件的资料,其实linux下的文件是没有扩展名区别的,而针对nginx的伪静态配置文件更是没有名称的区别,只要指定相应路径即可,具体步骤请按如下操作:

1、新建一个.htaccess文件,在里面输入规则,如:

<ol class="linenums"><li class="L0" value="1"><span class="com"># nginx rewrite rule </span></li><li class="L1"><span class="pln">rewrite </span><span class="pun">^(.*?)/</span><span class="pln">article</span><span class="pun">/.*?-(</span><span class="pln">\d</span><span class="pun">+)-(</span><span class="pln">\d</span><span class="pun">+)</span><span class="pln">\.html$ $1</span><span class="pun">/</span><span class="pln">show</span><span class="pun">.</span><span class="pln">html</span><span class="pun">?</span><span class="pln">id</span><span class="pun">=</span><span class="pln">$2</span><span class="pun">&</span><span class="pln">page</span><span class="pun">=</span><span class="pln">$3 </span><span class="kwd">break</span><span class="pun">;</span><span class="pln"> </span></li><li class="L2"><span class="pln">rewrite </span><span class="pun">^(.*?)/</span><span class="pln">category</span><span class="pun">/.*?-(</span><span class="pln">\d</span><span class="pun">+)-(</span><span class="pln">\d</span><span class="pun">+)</span><span class="pln">\.html$ $1</span><span class="pun">/</span><span class="pln">list</span><span class="pun">.</span><span class="pln">html</span><span class="pun">?</span><span class="pln">id</span><span class="pun">=</span><span class="pln">$2</span><span class="pun">&</span><span class="pln">page</span><span class="pun">=</span><span class="pln">$3 </span><span class="kwd">break</span><span class="pun">;</span><span class="pln"> </span></li><li class="L3"><span class="pln">rewrite </span><span class="pun">^(.*?)/</span><span class="pln">tag</span><span class="pun">/([^/]+)/?</span><span class="pln">$ $1</span><span class="pun">/</span><span class="pln">tag</span><span class="pun">.</span><span class="pln">html</span><span class="pun">?</span><span class="pln">w</span><span class="pun">=</span><span class="pln">$2 </span><span class="kwd">break</span><span class="pun">;</span><span class="pln">  </span><span class="pun"><</span><span class="pln">span id</span><span class="pun">=</span><span class="str">"more-1758"</span><span class="pun">></</span><span class="pln">span</span><span class="pun">></span></li><li class="L4"><span class="pln">rewrite </span><span class="pun">^(.*?)/</span><span class="pln">tag</span><span class="pun">/([^/]+)/(</span><span class="pln">\d</span><span class="pun">+)</span><span class="pln">$ $1</span><span class="pun">/</span><span class="pln">tag</span><span class="pun">.</span><span class="pln">html</span><span class="pun">?</span><span class="pln">w</span><span class="pun">=</span><span class="pln">$2</span><span class="pun">&</span><span class="pln">page</span><span class="pun">=</span><span class="pln">$3 </span><span class="kwd">break</span><span class="pun">;</span><span class="pln"> </span></li><li class="L5"><span class="com"># end nginx rewrite rule </span></li></ol>

保存文件并上传到网站的根目录。

2、修改虚拟主机配置

# ee /usr/local/etc/nginx/nginx.conf #freebsd 7.2默认nginx默认安装的配置文件
在你需要添加伪静态的虚拟机中的server块中引入.htaccess文件

include /usr/www/.htaccess #请把这个改成你.htaccess文件的位置,
保存、退出重启nginx

# /usr/local/etc/rc.d/nginx restart
刷新看看,如果能正常器从证明你的rewrite rule的语法是正确

nginx的rewrite规则您可以直接放在主机配置中也可以放在独立的文件用includeinru,存为独立的文件时,保存到一个新的文件(文件名可以任意取,不过建议还是用.ht(注意有个“点”)开头的文件名,因为这个服务器里面默认过滤了外部对.ht开头的文件访问:

location ~ /\.ht {
deny all;
}



CI的htaccess配置


最近突然想把链接中的index.php去掉,网上搜索了一把,发现解决方法很多,整理下。

首先是两个基本修改点:

1. 在httpd.conf中,将 所有 AllowOverride None  改为 AllowOverride All 好像共有三处吧,然后重启apache

2. 将 config.php中的  $config['index_page'] = 'index.php';  改为 $config['index_page'] = '';

然后根据具体配置:

3.1 如果站点直接位于服务器根目录下,如/www/ 那如下配置就行:

[java] view plain copy print ?
  1. RewriteEngine on  
  2. RewriteCond $1 !^(index\.php|robots|stafile|upload|\.txt)  
  3. RewriteRule ^(.*)$ /index.php/$1 [L]  
RewriteEngine on
RewriteCond $1 !^(index\.php|robots|stafile|upload|\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]


3.2 如果设置了别名,则加上 RewriteBase /别名/

3.3 如果位于根目录下的二级目录,则修改Rewrite Rule为:

[java] view plain copy print ?
  1. RewriteEngine on  
  2. RewriteCond $1 !^(index\.php|robots|stafile|upload|\.txt)  
  3. RewriteRule ^(.*)$ /mysite/index.php/$1 [L]  
RewriteEngine on
RewriteCond $1 !^(index\.php|robots|stafile|upload|\.txt)
RewriteRule ^(.*)$ /mysite/index.php/$1 [L]


最后,有个htaccess教程,可以详细了解下各个配置。
http://www.javascriptkit.com/howto/htaccess.shtml

这篇关于CI框架 CodeIgniter 伪静态 htaccess设置和Nginx伪静态方法 .的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/946593

相关文章

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何Python使用设置word的页边距

《如何Python使用设置word的页边距》在编写或处理Word文档的过程中,页边距是一个不可忽视的排版要素,本文将介绍如何使用Python设置Word文档中各个节的页边距,需要的可以参考下... 目录操作步骤代码示例页边距单位说明应用场景与高级用China编程途小结在编写或处理Word文档的过程中,页边距是一个