Apache和Nginx伪静态配置

Apache

版本 2.4.35

 

Apache配置伪静态有两种方法,一种是配置文件添加,一种是.htaccess文件添加。

首先确认是否打开了mod_rewrite模块:

LoadModule rewrite_module modules/mod_rewrite.so

以下将访问  test-a-b.php 转换成  test.php?a=&b= 的形式

 

 

1.配置文件

可以在httpd.conf或httpd-vhosts.conf中配置,以下选择vhosts文件为例,如下:

<VirtualHost *:80>

   ...

   <IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteRule ^(.*)test-([0-9]+)-([0-9]+)\.html$ $1test.php?a=$2&b=$3 [QSA]

    </IfModule>

</VirtualHost>

每次修改规则需要重启apache。

 

2. .htaccess

<VirtualHost *:80>

    Options FollowSymLinks   #需要打开FollowSymLinks级别以上

    <Directory  (指定目录) >

    AllowOverride all

    </Directory>

</VirtualHost>

然后在指定的目录或子目录下添加文件 .htaccess ,内容为:

 <IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteRule ^(.*)test-([0-9]+)-([0-9]+)\.html$ $1test.php?a=$2&b=$3 [QSA]

    </IfModule>

子目录的.htaccess会覆盖父目录,每次修改不需要重启服务器。

 

RewriteRule 语法规则: RewriteRule pattern substitution flags

1.Pattern

表示一个正则的匹配规则,对URL的Origin(例如:http://localhost:80/)后面的部分但不包括查询字符串进行匹配 。如果要否定这个规则,则在正则表达式前加!。

2.substitution 

使用它作为替换字符串  例如:  /abc/ab.html 重写为url路径 、abc/ab.html 重写为本地文件路径、http://localhost:8888/abc/ab.html 重写为绝对网址。

 3.flags

用于改变规则行为。目前有如下flag可使用:

C Chain :使用[Chain]或[C]标志,可以指示应将多个规则链接在一起作为单个逻辑转换。

E:设置环境变量

F:返回403响应

G:返回410响应

QSA 追加查询字符串。

NC 不区分大小写

L 表明当前规则是最后一条规则,停止解析后面的规则

P自身作为代理,将请求转发到另一个服务器,需要mod_proxy

PT:不执行文件的映射,得到的结果仍然是url

R=code 重定向

 

rewriteCond则指明rule的生效条件。

RewriteCond %{REQUEST_FILENAME} !-f   测试访问的文件名是否有真正的文件

 

 

Nginx

location (匹配url) {

    ...

    rewrite   ^(.*)test-([0-9]+)-([0-9]+)\.html$ $1test.php?a=$2&b=$3

}

或 使用 include 单独引入写好的包含location的文件

 

参考

https://www.cnblogs.com/kynewu/p/9088550.html  apache和nginx伪静态配置

https://www.linuxidc.com/Linux/2018-05/152502.htm   nginx匹配语法规则

https://cwiki.apache.org/confluence/display/HTTPD/Rewrite apache httpd官方文档

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值