我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Apache中rewrite伪静态规则有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Apache中rewrite伪静态规则有哪些

这篇文章主要为大家展示了“Apache中rewrite伪静态规则有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Apache中rewrite伪静态规则有哪些”这篇文章吧。

Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块

基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。

基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。

实战

代码如下:


RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^MSIE [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Opera [NC]
RewriteRule ^.* - [F,L] 这里”-”表示没有替换,浏览器为IE和Opera的访客将被禁止访问。


例子:


代码如下:


RewriteEngine On
RewriteBase /test
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ([^/]+)$ /test/$1.php
#for example: /test/admin => /test/admin.php
RewriteRule ([^/]+).html$ /test/$1.php [L]
#for example: /test/admin.html => /test/admin.php


使用Apache的URL Rewrite配置多用户虚拟服务器

要实现这个功能,首先要在DNS服务器上打开域名的泛域名解析(自己做或者找域名服务商做)。比如,我就把 *.kiya.us和 *.kiya.cn全部解析到了我的IP地址70.40.213.183上。

然后,看一下我的Apache中关于*.kiya.us的虚拟主机的设定。


代码如下:


ServerAdmin webmaster@kiya.us
DocumentRoot /home/www/111cn.net
ServerName dns.kiya.us
ServerAlias dns.kiya.us kiya.us *.kiya.us
CustomLog /var/log/httpd/osa/access_log.log” common
ErrorLog /var/log/httpd/osa/error_log.log”
AllowOverride None
Order deny,allow
#AddDefaultCharset GB2312
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+.kiya.(cn|us)$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+).kiya.(cn|us)(.*)$ /home/www/111cn.net/sylvan$3?un=$1&%{QUERY_STRING} [L]



在这段设定中,我把*.kiya.cn和*.kiya.us 的Document Root都设定到了 /home/www/111cn.net

限制目录只能显示图片


代码如下:


< IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^.*.(gif|jpg|jpeg|png|swf)$
RewriteRule .*$ - [F,L]
< /IfModule>



RewriteRule规则表达式的说明:
. 匹配任何单字符
[chars] 匹配字符串:chars
[^chars] 不匹配字符串:chars
text1|text2 可选择的字符串:text1或text2
? 匹配0到1个字符
* 匹配0到多个字符
+ 匹配1到多个字符
^ 字符串开始标志
$ 字符串结束标志
n 转义符标志

反向引用 $N 用于 RewriteRule 中匹配的变量调用(0 <= N <= 9)
反向引用 %N 用于 RewriteCond 中最后一个匹配的变量调用(1 <= N <= 9)

RewriteCond适用的标志符
&lsquo;nocase|NC&rsquo; (no case)忽略大小
&lsquo;ornext|OR&rsquo; (or next condition)逻辑或,可以同时匹配多个RewriteCond条件

RewriteRule适用的标志符

&lsquo;redirect|R [=code]&rsquo; (force redirect)强迫重写为基于http开头的外部转向(注意URL的变化) 如:[R=301,L]
&lsquo;forbidden|F&rsquo; (force URL to be forbidden)重写为禁止访问
&lsquo;proxy|P&rsquo; (force proxy)重写为通过代理访问的http路径
&lsquo;last|L&rsquo; (last rule)最后的重写规则标志,如果匹配,不再执行以后的规则
&lsquo;next|N&rsquo; (next round)循环同一个规则,直到不能满足匹配
&lsquo;chain|C&rsquo; (chained with next rule)如果匹配该规则,则继续下面的有Chain标志的规则。
&lsquo;type|T=MIME-type&rsquo; (force MIME type)指定MIME类型
&lsquo;nosubreq|NS&rsquo; (used only if no internal sub-request)如果是内部子请求则跳过
&lsquo;nocase|NC&rsquo; (no case)忽略大小
&lsquo;qsappend|QSA&rsquo; (query string append)附加查询字符串
&lsquo;noescape|NE&rsquo; (no URI escaping of output)禁止URL中的字符自动转义成%[0-9]+的形式。
&lsquo;passthrough|PT&rsquo; (pass through to next handler)将重写结果运用于mod_alias
&rsquo;skip|S=num&rsquo; (skip next rule(s))跳过下面几个规则
&lsquo;env|E=VAR:VAL&rsquo; (set environment variable)添加环境变量

Apache mod_rewrite规则重写的标志一览

1) R[=code](force redirect) 强制外部重定向
强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。
2) F(force URL to be forbidden)禁用URL,返回403HTTP状态码。
3) G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。
4) P(force proxy) 强制使用代理转发。
5) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N(next round) 重新从第一条规则开始运行重写过程。
7) C(chained with next rule) 与下一条规则关联

如果规则匹配则正常处理,该标志无效,如果不匹配,那么下面所有关联的规则都跳过。

8) T=MIME-type(force MIME type) 强制MIME类型
9) NS (used only if no internal sub-request) 只用于不是内部子请求
10) NC(no case) 不区分大小写
11) QSA(query string append) 追加请求字符串
12) NE(no URI escaping of output) 不在输出转义特殊字符
例如:RewriteRule /foo/(.*) /bar?arg=P1%3d$1 [R,NE] 将能正确的将/foo/zoo转换成/bar?arg=P1=zoo
13) PT(pass through to next handler) 传递给下一个处理
例如:
RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理
Alias /def /ghi
14) S=num(skip next rule(s)) 跳过num条规则
15) E=VAR:VAL(set environment variable) 设置环境变量

以上是“Apache中rewrite伪静态规则有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Apache中rewrite伪静态规则有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Apache中rewrite伪静态规则有哪些

这篇文章主要为大家展示了“Apache中rewrite伪静态规则有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Apache中rewrite伪静态规则有哪些”这篇文章吧。Rewirte主要的
2023-06-13

dedecms5.3伪静态及rewrite规则

1 首先需要在后台开启伪静态(服务器必须支持) 2 设置栏目必须是使用动态页 3修改 include/channelunit.func.php 文件 查找 复制代码代码如下: $reurl = $GLOBALS['cfg_phpurl'].
2022-06-12

dedecms 5.5 伪静态化ReWrite规则

个人修改记录,不一定适合大众. 列表命名规则: 复制代码代码如下: /list/list-{tid}-{page}.html 文章命名规则: 复制代码代码如下: /test/{Y}{M}/{aid}.html .htaccess 复制代码代
2022-06-12

vps伪静态规则有哪些

VPS伪静态规则是一种将动态网页的URL转换为静态网页URL的技术,可以提高网站的访问速度和安全性。以下是一些常见的VPS伪静态规则:1. Apache服务器的伪静态规则:- RewriteEngine On- RewriteCond %{
2023-09-08

wordpress伪静态规则有哪些

在WordPress中,可以使用以下规则来实现伪静态:1. Apache服务器规则:如果你的网站运行在Apache服务器上,可以在.htaccess文件中添加以下规则:```RewriteEngine OnRewriteBase /Rewr
2023-08-15

Apache中伪静态Rewrite的使用方法和URL重写规则表达式讲解

目录一、安装rewrite模块二、配置文件httpd.conf中启用Rewrite三、在服务器中找到配置文件vhosts.conf,启用.htAccess四、在要启用伪静态的项目根目录下建立 .htaccess 文件五、重启Apache服务
2022-11-20

phpwind伪静态规则(IIS,Nginx,Apache)的介绍及代码

phpwind iis下伪静态规则[ISAPI_Rewrite]RewriteRule ^(.*)/(.*)-htm-(.*)-(.*)\.html$ $1/$2\.php\?$3=$4RewriteRule ^(.*)/read-htm-
2022-06-12

常用的nginx rewrite重写规则有哪些

常用的nginx rewrite重写规则有以下几种:1. 重定向:- 将所有请求重定向到一个新的URL:`rewrite ^/(.*)$ http://newdomain.com/$1 permanent;`- 将只有特定路径的请求重定向到
2023-08-14

discuz伪静态配置的方法有哪些

1. 开启伪静态功能:在Discuz后台管理系统中,找到“全局”->“设置”->“搜索引擎优化”,将“启用 URL 伪静态”选项设置为“是”。2. 修改服务器配置文件:在服务器配置文件中添加伪静态规则,将动态URL转化为静态URL,以达到优
2023-06-06

discuz伪静态设置的方法有哪些

Discuz伪静态设置的方法有以下几种:1. 使用Discuz自带的伪静态插件:在后台插件管理中启用“伪静态”插件,然后根据提示设置即可。2. 使用Apache服务器的Rewrite模块:将.htaccess文件上传到Discuz根目录下,
2023-06-03

React状态管理的规则有哪些

React状态管理的规则有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。No.1 一个关注点有效状态管理的第一个规则是:使状态变量负责一个问题。使状态变量负责一个问题使其符
2023-06-20

国内一些常用PHP的CMS的Nginx服务器的伪静态规则整理

当我们从apache服务器转向Nginx服务器的时候,它们的伪静态规则就不一样了,所以你熟悉Nginx服务器的伪静态规则,自己写当然也好
2022-11-21

JavaScript中原型有哪些规则

今天就跟大家聊聊有关JavaScript中原型有哪些规则,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。javascript是一种什么语言javascript是一种动态类型、弱类型的语
2023-06-14

Python中有哪些关联规则

这期内容当中小编将会给大家带来有关Python中有哪些关联规则,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.1 基本概念 项集:item的集合,如集合{牛奶、麦片、糖}是一个3项集,可以认为是购买记录
2023-06-15

java中有哪些规则引擎

这期内容当中小编将会给大家带来有关java中有哪些规则引擎,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录