apche如何使用rewrite实现伪静态

阅读更多

1.       配置 apache, 启用 rewrite 机制

httpd.conf 中启用 rewrite

LoadModule rewrite_module modules/mod_rewrite.so

2.       配置虚拟主机

c hosts 文件添加你的 ip 域名对应

127.0.0.1       www.hsp.com

http.conf 文件中启用虚拟主机

# Virtual hosts 启用虚拟主机

Include conf/extra/httpd-vhosts.conf

 

3. 配置 httpd_vhosts.conf 文件

 

 

 

 

段的配置,默认值,是在 httpd.conf 的中配置,看根目录 .

 

 

    #ServerAdmin [email protected]

    # 文档的根目录

    DocumentRoot "C:/myenv/apache/htdocs/static3"

    # 域名

    ServerName www.hsp.com

    ErrorLog "logs/dummy-host2.somenet.com-error.log"

    #CustomLog "logs/dummy-host2.somenet.com-access.log" common

    # 配置 rewrite 相关选项 ,

   

    # 拒绝所有的访问

    #Deny from all

    Allow from all

    # 是否显示列表 ( 在发布项目后一般是不启用 , 对于这个配置,针对 DocumentRoot htdos 外的目录生效 )

    #Options +indexes

    # 是否启用 rewrite

    #Allowoverride  all

   

4. 在目录下添加了一个 .htaccess  文件,这个文件时配置 rewrite 机制和规则

 

# 写你的 rewrite 规则

RewriteEngine On

#news-id(\d+)\.html$ 是规则   news.php?id=$1 是转发的页面

# 正则 子表达式 捕获 反向引用

#  "news-id33.html"

# 可以配置多个规则,匹配的顺序是从上到下

RewriteRule  news-id(\d+)\.html$   news.php?id=$1

RewriteRule  news-id(\d+)\.html$     error.php

 

 

综合使用案例

 

 

 

1.       这个 rewrite 的规则也直接在 < Direcotry > 段直接配置

 

 

    # 拒绝所有的访问

    #Deny from all

     Allow from all

    # 是否显示列表 ( 在发布项目后一般是不启用 , 对于这个配置,针对 DocumentRoot htdos 外的目录生效 )

    #Options +indexes

    # 是否启用 rewrite

    Allowoverride  all

    # 我们有时候,也可以把 rewrite 机制和规则写这里

    #RewriteEngine On

    #RewriteRule  news-id(\d+)\.html$   news.php?id=$1

   

 

 

使用伪静态来完成简单的新闻查询 .

伪静态是站在 seo 角度看 ., 他对于的页面不是存在的,而是每次查询数据库得到的信息 ,

真静态的页面是真的存在 .

你可能感兴趣的:(apache,伪静态)