首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux下nginx支持.htaccess文件实现伪静态的方法

Linux下nginx支持.htaccess文件实现伪静态的方法

作者头像
明哥的运维笔记
修改于 2025-07-30 07:59:01
修改于 2025-07-30 07:59:01
5.2K00
代码可运行
举报
文章被收录于专栏:运维笔记运维笔记
运行总次数:0
代码可运行

在 Google 上搜索的资料很多人都说 nginx 目前不支持. htaccess 文件,我按照 nginx 的规则试验了一下,结果发现 nginx 是完全支持. htaccess 文件的!

方法如下:

1. 在需要使用. htaccess 文件的目录下新建一个. htaccess 文件, 如本人的一个 Discuz 论坛目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  vim /var/www/html/168pc/bbs/.htaccess

2. 在里面输入规则,我这里输入 Discuz 的伪静态规则:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# nginx rewrite rule
rewrite ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2 last;
rewrite ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 last;
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^(.*)/profile-(username|uid)-(.+).html$ $1/viewpro.php?$2=$3 last;
rewrite ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3 last;
rewrite ^(.*)/tag-(.+).html$ $1/tag.php?name=$2 last;
# end nginx rewrite rule

wq 保存退出。

3. 修改 nginx 配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    vim /etc/nginx/nginx.conf

4. 在需要添加伪静态的虚拟主机的 server{} 中引入. htaccess 文件,如图所示:

include /var/www/html/168pc/bbs/.htaccess;(把这个改成你. htaccess 文件的具体位置) wq 保存退出。

5. 重新加载 nginx 配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 /etc/init.d/nginx reload

重新打开网页看看,如果伪静态正常就证明你的 rewrite rule 语法是正确的。

正常,完毕!

补充:偶在网上发现了个可以在线将 Apache Rewrite 伪静态规则自动转换为 Nginx Rewrite 网页。大家可以试试看。

此地址里面的内容包含可以完成上面说的略做修改的功能。就是把. htaccess 中的规则自动转换成 nginx 下面可用的规则。

总结:.htaccess 文件本来是 apache 专用的分布式配置文件,提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。其实修改一下,nginx 也可使用. htaccess 文件实现多种功能。实现伪静态只是. htaccess 的其中一个用途,.htaccess 还可以做很多的用途,如过滤访问 IP,设置 web 目录访问权限、密码等。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《Linux命令行与shell脚本编程大全》第二十五章 创建与数据库、web及电子邮件相关的脚本
25.1 MySQL数据库 /* 但是我在虚拟机上安装的时候居然不提示输入密码。 这个可以参考http://blog.csdn.net/sinat_21302587/article/details/7
xcywt
2018/01/12
9670
《Linux命令行与shell脚本编程大全》第二十五章 创建与数据库、web及电子邮件相关的脚本
《Linux命令行与shell脚本编程大全》第二十章 正则表达式
20.1 什么是正则表达式 20.1.1 定义 正则表达式是你所定义的模式模板。linux工具可以用它来过滤文本。 正则表达式利用通配符来描述数据流中第一个或多个字符。 正则表达式模式含有文本或特殊字符,为sed编辑器和gawk程序定义了一个匹配数据时采用的模板。 20.1.2 正则表达式的类型 使用正则表达式最大的问题在于有不止一种类型的正则表达式。 正则表达式是通过正则表达式引擎实现的,正则表达式引擎是一套底层软件,负责解释正则表达式模式并使用这些模式进行文本匹配。 在linux中有两种流行的正则表达式
xcywt
2018/01/11
1.3K0
《Linux命令行与shell脚本编程大全》第二十二章 gawk进阶
gawk是一门功能丰富的编程语言,你可以通过它所提供的各种特性来编写好几程序处理数据。  22.1 使用变量 gawk编程语言支持两种不同类型的变量: 内建变量和自定义变量 22.1.1 内建变量 gawk程序使用内建变量来引用程序数据里的一些特殊功能 1.字段和记录分隔符变量 数据字段变量:允许你使用美元符和字段在该记录中的位置值来引用记录对应的字段。 要引用第一个字段就用变量$1,第二个就用$2,….以此类推。 数据字段是由分隔符来划定的。默认字段分隔符是一个空白字符,也就是空格或者制表符。 有一组内建
xcywt
2018/01/11
8450
《Linux命令行与shell脚本编程大全》23章24章
第二十三章 使用其他shell bash shell是linux发行版中最广泛使用的shell。但是它并不是唯一的选择,还有其他的shell可以供你选择。 23.1 什么是dash shell 百度百科上说:Dash shell是一个Unix shell,比Bash shell小的多,符合POSIX标准。 下面是书上的: dash shell是作为debian linux发行版的一部分开发的,主要出现在Ubuntu linux发行版中。它是Bourne shell的精简版。所以它并不像bashshell一样
xcywt
2018/01/12
1.1K0
Linux运维常用shell脚本之网络管理实例
    HTTP_CODE=(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" 
菲宇
2022/12/21
3.2K0
《Linux命令行与shell脚本编程大全》第二十一章 sed进阶
本章介绍一些sed编辑器提供的高级特性。 21.1 多行命令 按照之前的知识,所有的sed编辑器命令都是针对单行数据执行操作的。 在sed编辑器读取数据流时,它会基于换行符的位置将数据分成行,一次处理一行数据。 有时会需要对跨多行的数据执行特定操作。 比如,在数据中查找一个长的短语Linux system Administrators Group.如果这个短语出现在两行当中,之前的知识就不够用了。 解决方案,sed编辑器包含了三个可用来处理多行文本的特殊命令: N:将数据流中的下一行加进来创建一个多行组(m
xcywt
2018/01/11
1.8K0
《Linux命令行与shell脚本编程大全》第二十一章 sed进阶
《Linux命令行与shell脚本编程大全》 第四章
4.1 监测程序 1. ps  默认只显示运行在当前控制台下的属于当前用户的进程。  可以接很多选项,比如 -A表示所有进程  -e等。 2. ps -l  查看进程更多信息 UID:启动这些进程的用户 PID:进程的进程ID PPID:父进程的进程ID C:进程生命周期中的CPU利用率 TTY:进程启动时的终端设备 TIME:运行进程需要的累计CPU时间 CMD:启动的程序名称 PRI:进程的优先级(数字越大代表越低的优先级) ADDR:进程的内存地址 F:内核分配给进程的系统标记 S:进程的状态(O正在
xcywt
2018/01/11
1.2K0
《Linux命令行与shell脚本编程大全》 第四章
2018-11-22 10 个实战及面试常用 Shell 脚本编写
注意事项 1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空格;多加注释说明。 3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。 4)默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。 5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。 6)写脚本一定先测试再到生产上。
Albert陈凯
2018/12/14
4400
shell脚本快速入门之-----shell脚本练习100例!!!
1、可以采用冒泡排序的方式。 2、双层循环,外层控制把数组中每一个元素都取出来,内层循环采用当前元素和向后的数组元素比大小,最小的值和当前元素交换的方式 3、输入成绩这一块,因为数组已经有序了,只要拿输入元素和数组中元素相比,如果数组中元素大于当前输入元素,记住当前位置,当前位置数组后面的元素都向后移一位。
不吃小白菜
2020/09/03
23.2K2
《Linux命令行与shell脚本编程大全》第十二章 使用结构化命令
许多程序要就对shell脚本中的命令施加一些逻辑控制流程。 结构化命令允许你改变程序执行的顺序。不一定是依次进行的 12.1 使用if-then语句 如下格式: if command then          commands fi if语句会允许if后面的那个命令,如果该命令的退出码的0(代表成功了)位于then部分的命令就会被执行。否则不执行。 例子: #!/bin/bash # if then test if pwd  then echo “pwd success” fi # thi
xcywt
2018/01/11
1K0
《Linux命令行与shell脚本编程大全》第十九章 初识sed和gawk
这两个工具能够极大简化需要进行的数据处理任务。 19.1 文本处理 能轻松实现自动格式化、插入、修改或删除文本元素的简单命令行编辑。 sed和gawk就具备上述功能 19.1.1 sed编辑器 被称为流编辑器。 流编辑器会在编辑器处理数据之前预先提供的一组规则来编辑数据流。 sed根据命令来处理数据流中的数据。命令可以从命令行输入,也可以存储在一个命令文本文件中。 sed编辑器会执行下列操作: 1)一次从输入中读取一行数据 2)根据所提供的编辑命令匹配数据 3)按照命令修改流中的数据 4)将新的数据输出到S
xcywt
2018/01/11
2.1K0
《Linux命令行与shell脚本编程大全》第十九章 初识sed和gawk
Linux 【Shell脚本经典案例】
===============Talk is cheap, show me the code,bye-bye================
IT茂茂
2020/09/17
3.4K0
Linux 【Shell脚本经典案例】
Linux命令行与shell脚本编程大全(基础介绍)
1、介绍,用法,实用 2、/etc/inittab 运行级别 systemctl set-default TARGET.target 3、桌面环境:x window,kde,gnome 4、ls -F //区分目录和文件的输出 ls -F -R ps l ps -o stat,cmd,pid 5、排序 sort 按字符 sort -n 按数字大小 sort -k3 sort -r 反转 sort -t ":" -k 3 -n /etc/passwd 指定分隔符后的排序 6、grep grep -n 带行号 grep -c//只统计有几行是符合的 grep -e a -e b //多个匹配,or 7、echo
用户5760343
2022/05/18
8140
Linux命令行与shell脚本编程大全(基础介绍)
Shell脚本编程_shell简单脚本
  shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务,在用户和内核之间充当翻译官的角色,是一个命令解释器。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 shell。
全栈程序员站长
2022/11/09
8.4K0
Shell脚本编程_shell简单脚本
《Linux命令行与shell脚本编程大全》第十七章 创建函数
可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它了。 17.1 基本的脚本函数 函数:是一个脚本代码块,可以为其命名并在代码中任何位置重用。 17.1.1 创建函数 有两种格式:name 是函数名 1) function name {          commands } 2)这种就比较接近c语言风格了 name() {          commands } 17.1.2 使用函数 跟其他shell命令一样,在行中指定函数名就好了。 在函数定义前使用函数,会收到一条错误消
xcywt
2018/01/11
7800
《Linux命令行与shell脚本编程大全》第十七章 创建函数
Linux Shell脚本案例
1.Dos攻击防范(自动屏蔽攻击IP) #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}') for IP in $ABNORMAL_IP; do if [ $(iptabl
用户7741497
2022/03/01
1.4K0
Linux 实用运维脚本分享
#查看僵尸进程 ps -al | gawk '{print $2,$4}' | grep Z # 匹配电子邮件的地址 cat index.html | egrep -o "[A-Za-z0-9._]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4}" > ans.txt #匹配http URL cat index.html | egrep -o "http://[A-Za-z0-9.]+\.[a-zA-Z]{2,3}" > ans.txt #纯文本形式下载网页 lynx -dump w
杰哥的IT之旅
2022/09/02
7K0
《Linux命令行与shell脚本编程大全》第十一章 构建基本脚本
11.1使用多个命令 $date;who   //  命令列表,加入分号就可以,这样会依次执行。参见5.2.1节 注意区分$(date;who),这个是进程列表,会生成一个子shell来执行 Shell脚本的关键在于输入多个命令并处理每个命令的结果,甚至需要将一个命令的结果传给另外一个命令。 Shell可以让你将多个命令串起来,一次性完成。 上面的date;who可以写入一个文件,这样就不用在命令行敲命令了,运行这个文本文件就好了。 11.2 创建shell脚本文件 第一行必须这样:指定要使用的shell
xcywt
2018/01/11
1.9K0
《Linux命令行与shell脚本编程大全》第十一章 构建基本脚本
linux学习第二十六篇:正则介绍,grep,sed,awk命令
正则介绍 正则就是一串有规律的字符串,掌握好正则对于编写shell脚本有很大帮助,各种编程语言中都有正则,原理是一样的。正则表达式是这样解释的:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。对于系统管理员来讲,正则表达式贯穿在我们的日常运维工作中,无论是查找某个文档,抑或查询某个日志文件分析其内容,都会用到正则表达式。其实正则表达式,只是一
用户1215343
2018/02/05
4.2K0
linux学习第二十六篇:正则介绍,grep,sed,awk命令
《Linux命令行与shell脚本编程大全》第十八章 图形化桌面环境中的脚本编程
18.1 创建文本菜单 直接上例子吧:   1 #!/bin/bash   2 function menu   3 {   4         clear   5         echo   6         echo -e "\t\t\tSys Admin Menu\n"   7         echo -e "\t1. Display disk space"   8         echo -e "\t2. Display logged usage"   9         e
xcywt
2018/01/11
1.4K0
《Linux命令行与shell脚本编程大全》第十八章 图形化桌面环境中的脚本编程
推荐阅读
相关推荐
《Linux命令行与shell脚本编程大全》第二十五章 创建与数据库、web及电子邮件相关的脚本
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档