Apache和Nginx设置伪静态(URL Rewrite)的方法
在Apache中有两种方法配置,一是通过httpd.conf文件,二是通过.htaccess文件。
使用 httpd.conf 来配置 rewrite 策略。
要使用 httpd.conf 文件来设置伪静态策略,我们可以直接在 httpd.conf 中写入如下代码,如果您的网站是配置在 VirtualHost 中,则将这段代码加到对应的。
使用.htaccess来配置rewrite策略。
检查httpd.conf中的:
RewriteEngine on
RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3
复制代码保存后重启httpd服务即可生效。
常见问题: Q:为何都按上面设置了缺还是无法静态化? A:很有可能是因为别的目录设置项覆盖了。
Nginx:
Nginx下设置伪静态方法与Apache差不多,直接在nginx.conf (或者在对应的*.conf) 中找到需设置伪静态规则的服务器对应字段,在server{ location/{ } }中添加以下代码:
server {
listen 80 default_server;
server_name _;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
rewrite ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3;
}
}
添加后重启Nginx服务即可生效!
正则表达式匹配
就用上面的例子中的伪静态策略来简单解释下正则表达式在配置的作用:
策略:RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3
请求路径:http://www.abc.com/list-123-456.html
本策略分成两段,第一段是使用正则表达式去匹配请求访问的路径,第二段是将匹配后的参数转化为真实访问的路径。策略执行时:^(.*)list-([0-9]+)-([0-9]+)\.html$ 与 /list-123-456.html这个字符串进行匹配:
^和$字符分别代表了匹配输入字符串的开始和结束
()中的匹配到的内容会被按顺序分配到变量$1 $2 $3中
.*匹配任意字符串,且长度从0个到多个,故$1值为/
[0-9]+匹配字符0-9,长度1个到多个,故$2和$3分别是123和456
所以最后真实访问的动态地址为/list.php?page=123&id=456
上面只是介绍了基本的配置策略,其实这个rewrite规则还有非常多的玩法,例如使用RewriteCond进行域名层面的重写跳转。
Apache和Nginx设置伪静态(URL Rewrite)的方法的更多相关文章
- IIS7.5使用web.config设置伪静态的二种方法
转自 网上赚钱自学网 .http://www.whosmall.com/post/121 近几天公司里开发的项目有几个运行在IIS7.5上,由于全站采用的是伪静态,因此从网上找到两两种方法来实现.这两 ...
- Nginx常用伪静态规则(rewrite)-Discuz X3.2-WordPress-PHPCMS-ECSHOP-SHOPE(转)
当我们从apache服务器转向Nginx服务器的时候,它们的伪静态规则就不一样了,所以你熟悉Nginx服务器的伪静态规则,自己写当然也好.不了解Nginx服务器的伪静态规则的,为方便各位站长,收集了这 ...
- Apache 和 Nginx 下的 URL 重写
URL 重写和重定向 URL 重写是将页面映射到本站另一页面, 而重定向则是将页面映射到另一主机(域名). 其中临时重定向(R=302)和永久重定向(R=301)都是亲搜索引擎的, 是 SEO 的重要 ...
- php 伪静态 (url rewrite mod_rewrite 重写)
mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法!对初学者很有用的哦!1.检测Apache是否支持mod_rewrite通过php提供的php ...
- [转]nginx下的url rewrite
转:http://zhengdl126.iteye.com/blog/698206 if (!-e $request_filename){rewrite "^/index\.html&quo ...
- Apache、NGINX支持中文URL
Apache(32位):安装环境:CentOS 5.6 + Apache 2.2.15安装结果:安装后支持“中文图片.文件名”链接直接打开以下为安装过程:1.下载安装包 wget ftp://ftp. ...
- IIS7.5使用web.config设置伪静态的二种方法(转)
近几天公司里开发的项目有几个运行在IIS7.5上,由于全站采用的是伪静态,因此从网上找到两两种方法来实现.这两种方法各有优势:第一种比较灵活,只要把文件拷到根目录下,即可直接显示所有伪静态页面(适用于 ...
- (转)apache和nginx的区别
nginx 相对 apache 的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下ngin ...
- 5G时代,URL Rewrite 还吃香吗
URL Rewrite是网站建设中经常用到的一项技巧,通过 rewrite 我们能够屏蔽服务器运行态的信息,包括服务的程序.参数等等,给用户呈现美化后的URL,同时对搜索引擎更加友好,方便我们网站的推 ...
- Apache、nginx 、lighttpd性能比较
Apache.nginx .lighttpd性能比较 1. web服务器简介 1. lighttpd Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全.快速. ...
随机推荐
- 在日报、读后感、小说、公文模版、编程等场景体验了一把chatGPT
总结/朱季谦 在日报.读后感.小说.公文模版.编程等场景体验了一把chatGPT,说下体会. 昨天经过一顿操作猛如虎的捣鼓,终于在Mac笔记本上将chatGPT的访问环境搭建了起来,忍不住立马开始玩起 ...
- Linux密钥认证
网站集群批量管理-秘钥认证 一.概述 管理更加轻松:两个节点,通过秘钥形式进行访问,不需要输入密码,单向 应用场景: 一些服务在使用前要求做秘钥认证 手动写批量管理脚本 名字:秘钥认证,免密码登录,双 ...
- 从零开始,打造属于你的 ChatGPT 机器人!
大家好!我是韩老师. 不得不说,最近 OpenAI/ChatGPT 真的是太火了. 前几天,微软宣布推出全新的 Bing 和 Edge,集成了 OpenAI/ChatGPT 相关的技术,带动股价大涨: ...
- 环形链表I、II(含代码以及证明)
环形链表 解题思路 定义两个指针,一个快指针,一个慢指针,快指针每次移动两个节点,慢指针每次移动一个节点. 从头节点开始,让快慢指针同时移动,如果链表中有环,那么快慢指针一定会在某个节点相遇. 如果快 ...
- P17_总结
能够知道如何创建小程序项目 微信开发者工具的使用.appID 的获取 能够清楚小程序项目的基本组成结构 app.js.app.json.app.wxss.pages 文件夹 能够知道小程序页面由几部分 ...
- 关于集合中remove()方法的问题
首先上一段代码: needDelete()方法:决定是否要删除 public static boolean needDelete(Object obj) { if (obj.equals(" ...
- metasploit2-practice
Metasploittable2打靶教程 本次靶机练习主要熟悉:高危端口利用:metasploit中search,show及各个模块使用. 一.环境准备 1.把靶场放在vmware打开,启用nat模式 ...
- JZOJ 4319. 【NOIP2015模拟11.5】Lucas的数列
题目 思路 暴力很好打,我们显然可以先把关于 \(k\) 的式子拆开 先二项式展开,然后把外面的 \(m\) 乘进去,把 \(p\) 的分母 \(m\) 消去 \(K = (\sum_{i=1}^m ...
- OpenLayers集成ECharts
1. 引言 OpenLayers是WebGIS中常用的开源JavaScript前端库,ECharts是常用的可视化开源JavaScript前端库 OpenLayers官网:OpenLayers - W ...
- PACS系统各个功能介绍--九五小庞
PACS系统是HIS系统的重要组成部分,医生可在电脑上查看患者的医学影像报告. ■ 支持心电DICOM,心电图浏览和处理(显示格式.纸速.增益.滤波.测量等). ■ 支持MPR.CPR.MIP.SSD ...