LAMP 配置apache伪静态

        在进行网站相关页面请求的时候,用户看到的地址是一个静态地址,实际程序内部走的是动态程序。如:访问detail.html,实际访问的是detail.php文件。有的程序页面本身不适合做纯静态(例如数据频繁发生变化的页面),但是我们还想让seo搜索引擎比较好搜录该页面,那么就做“伪静态”。

    静态:http://yourhost.com/index.php/12/2.html

    动态:http://yourhost.com/index.php?type=12&id=2

        

        伪静态使用好处:

① 对seo搜索引擎比较友好

② 针对用户有麻痹效果


        伪静态是服务器的技术,各大服务器都支持,用到的就是服务器的rewrite重写技术。

        .htaccess文件编写需要用到正则表达式,不了解的请自行恶补一下(基础即可)。


一、配置apache服务器开启rewrite模块。

        通过PHP提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。

冷暖自知一抹茶ck


二、修改配置文件。

        ①httpd.conf配置文件中加载了mod_rewrite.so模块

#LoadModule rewrite_module modules/mod_rewrite.so     把前面的 “#”去掉

         把 AllowOverride None 改为  AllowOverride All

<Directory "/var/www/html">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All
    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

        ③重启Apache即可以生效

systemctl restart httpd.service

        ④编辑文件 vi .htaccess  (该文件是隐藏文件  可使用  ls -al查看)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^demo.html$ demo.php
RewriteRule ^/vidio/([0-9]*).html$ /vidio.php?id=$1
</IfModule>

        现在你访问 http://yourhost.com/vidio/12.html时,相当于访问了http://yourhost.com/vidio.php?id=12

        效果如图:

        冷暖自知一抹茶ck

        冷暖自知一抹茶ck


        伪静态和静态页面冲突时解决办法:

#完整的配置规则如下
RewriteEngine on
#添加以下两项,!-d  和  !-f  分别表示  目录 和 文件
#当访问的伪静态和相应的静态目录和文件冲突时,访问静态页面
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^/index/([0-9]*).html$ /index.php?id=$1



        相关链接:http://www.cnblogs.com/caoruiy/p/4443986.html 

冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论