Apache伪静态重写URL规则写法 - TANKING 创意开发者

Apache伪静态重写URL规则写法

2022-08-18 2352 阅读 其它

最近在部署一个网站,服务器是Apache的,需要用到伪静态URL重写,所以本文就简单写一下这个伪静态的规则,顺便介绍一些各种URL重写的情况。


URL重写规则


假设网站域名为 www.qq.com 我想要实现的效果是访问 www.qq.com/artcle/12548789954115 即可打开文章页面。


实际上 www.qq.com/artcle/index.php?id=12548789954115  才是真实的访问路径我们通过URL重写规则去将链接重写为 www.qq.com/artcle/12548789954115


具体规则写法如下


RewriteEngine on
RewriteRule ^artcle/([0-9]*)$ artcle/index.php?id=$1


^指的是从这里开始,artcle指的是从这里开始的一个目录,如果是根目录,那么直接就是一个斜杠即可,([0-9]*)$ 是一个正则匹配规则,这里匹配的是只能传入数字。artcle/index.php?id=$1 很明显看出是原来的真实路径,其中$1指的是匹配第一个参数。


知道URL重写规则的意思就好办了,下面就是一些常见的URL重写规则。


1、www.qq.com/artcle/s.php?id=12345 重写为 www.qq.com/artcle/12345.html

RewriteEngine on
RewriteRule ^artcle/([0-9]*).html$ artcle/s.php?id=$1


2、www.qq.com/artcle/s.php?id=12345 重写为 www.qq.com/artcle/12345-1-1.html

RewriteEngine on
RewriteRule ^artcle/([0-9]*)-1-1.html$ artcle/s.php?id=$1


3、www.qq.com/artcle/s.php?id=abcdefg 重写为 www.qq.com/artcle/abcdefg

RewriteEngine on
RewriteRule ^artcle/(w+)$ artcle/s.php?id=$1


其实按照其实了解了规则的写法,就容易去DIY自己的伪静态URL重写规则了!