实现伪静态

来源:互联网 发布:免费的域名需要备案吗 编辑:程序博客网 时间:2024/05/16 02:53
1.首先第一种方法,此种配置的Rewrite规则是直接在httpd.conf下书写。
(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
(2)然后再在httpd.conf中书写如下规则:
RewriteEngine on
#当访问任何以t_开头,以.html结尾的文件时,将$1用与(.*)匹配的字符替换后,访问相应的test.php页面
RewriteRule ^/t_(.*).html$ /test.php?id=$1
前面是正则,也就是假的url,第二个是真正的url。此方法之针对localhost,使用此方法,请注释apache下#Include conf/vhosts.conf,
这个是虚拟机的扩展项,请注释掉,以免引起不必要的错误。



2.然后是第二种方法,在我们的apache下vhosts这个配置文件进行配置
(1)首先我们将之前注释的打开(#Include conf/vhosts.conf),之后呢,我们进入这个配置文件,详情请看下面:
我们默认进去是这样:

DocumentRoot "D:\xdx"
ServerName www.xdx.com
ServerAlias phpStudy.net

Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted


我们需要改成这个样子:

DocumentRoot "D:\xdx"
ServerName www.xdx.com
ServerAlias phpStudy.net
RewriteEngine on
RewriteRule ^/t_(.*).html$ /test.php?id=$1

Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted


改成这样就大功告成了



3.接下来看第三种方法
我们进入我们的web网站目录,创建一个文件,名为.htaccess这个文件,在里面加入
RewriteEngine on
RewriteRule t_(.*).html text.php?id=$1
保存之后退出,我们可以实现相同的结果,快来尝试一下







在这需要同学注意下 第一种方法和第二种方法 在正则的前面 必须要有/这个东西 他每次匹配的都是/什么什么的网址 所以替换的那个url也得在开头加/ 而第三种方法 他匹配的url是没有/的 所有正则不需要加/
RewriteEngine on
RewriteRule ^t_(.*).html$ text.php?id=$1

大家可以对照一下两者的区别

RewriteEngine on
RewriteRule ^/t_(.*).html$ /test.php?id=$1 

0 0