投稿 评论 顶部

Apache服务器配置网站伪静态

佚名 网络安全
1. 什么是网站的伪静态?
伪静态简而言之就是假静态, 当输入
URL的时候访问的是.html或者.htm结尾的文件, 其实访问的依旧是.php文件, 过程就是进行URL的重
2
2. 伪静态有什么好处?
个人认为: 伪静态相对于纯静态来说, 不用生成静态文件, 只需要写正则匹配
URL路由即可, 搜索引擎喜欢静态文件, 那么伪静态正好投
其所好
3. 伪静态如何配置?
我们采用建立
.htaccess文件的形式, 来展示网站路由的伪静态技术, 实现步骤如下:
① 打开
Apache的配置文件httpd.conf, 找到:
#LoadModule rewrite_module 将前面的 #去掉 表示开启url重写模式
② 找到虚拟主机的配置项:
<VirtualHost *:80>
ServerName
www.lipeng.com
documentRoot c:/lipeng
</VirtualHost>
<Directory "c:/lipeng">
Options Indexes FollowSymLinks
AllowOverride None 改为 AllowOverride All 表示 本网站允许进行域名重定向
Order allow,deny
Allow from all
</Directory>
③ 重启Apaache

④ 在你的网站入口文件, 也就是根目录下建立一个.htaccess文件, 该文件比较特殊, 没有文件名

⑤ 然后打开这个.htaccess文件, 写入你的重写规则:
第一行一定要写: RewriteEngineon 注释: 这一句话是开启重写模式规则
第二行接着写重写的正则表达式:
RewriteRule([a-zA-Z]{1,})-([a-zA-Z0-9]{1,}).html$ /index.php?controller=$1&action=$2
这个正则什么意思呢? 我给你一一解释一下:
RewriteRule: 代表的是从这开始就是重写规则了
([a-zA-Z]{1,})是第一个正则, 也就是说你要请求的一个参数
例如: www.baidu.com/index.php?controller=User&&Action=add 那么上面的第一个正则将代表 controller=右边的值
-代表的是参数之间的连接标示符 可以用其他的标示符, 注意一定要是正则能认识的标示符
([a-zA-Z0-9]{1,})是第二个正则, 也就是说你要请求的二个参数
例如:
www.baidu.com/index.php?controller=User&&Action=add 那么上面的第一个正则将代表 Action=右边的值
.html代表的是你要重写后的文件后缀名, 我们重写后以静态文件.html的形式展示
$: 代表重写的正则结束
紧接着一定要有一个空格, 后面开始写你要匹配的字符串也就是URL
index.php?controller=$1&action=$2代表你的原始URL$1就会匹配你的第一个正则, $2就会匹配你的第二个正则
伪静态实例:
例如: 我现在在
C盘更目录下建立一个文件夹叫做: lipeng, 作为我网站的根目录
紧接着, 我在根目录下写一个
.htaccess文件, 内容如下:
RewriteEngine on
RewriteRule ([a-zA-Z0-9]{1,})-([a-zA-Z0-9]{1,}).htm$ /admin.php?name=$1&age=$2
那么上面的正则是什么意思呢? 就是我在浏览器的地址栏里写一个http://www.lipeng.com/zhangsan-10.htm
那么这个地址就会去访问到我的
admin.php文件, 因为重写的规则就是指向admin.php的, 并且zhangsan-10.htm中的zhangsan, 我
可以在
admin.php里通过$_GET['name']得到这个值, 还可以通过$_GET['age']得到10这个值, 因为我的正则规则就是: 值1-2.
件后缀名