zoukankan      html  css  js  c++  java
  • httpd配置文件中重写函数Rewrite

    【RewriteCond%{HTTP_HOST}^(www.)?xxx.com$】

    这是重写条件,前面%{HTTP_HOST}表示当前访问的网址,只是指前缀部分,格式是www.xxx.com不包括“http://”和“/”,^表示字符串开始,$表示字符串结尾,.表示转义的.,如果不转义也行,推荐转义,防止有些服务器不支持,?表示前面括号www.出现0次或1次,这句规则的意思就是如果访问的网址是xxx.com或者www.xxx.com就执行以下的语句,不符合就跳过。

    配置域名跳转

    <IfModule mod_rewrite.c>
            RewriteEngine on
            RewriteCond %{HTTP_HOST} ^www.domain1.com$
            RewriteRule ^/(.*)$
    http://www.domain2.com/$1 [R=301,L]
        </IfModule>
    如果是多个域名,可以这样设置:
        <IfModule mod_rewrite.c>
            RewriteEngine on
            RewriteCond %{HTTP_HOST} ^www.domain.com [OR]
            RewriteCond %{HTTP_HOST} ^www.domain1.com$
            RewriteRule ^/(.*)$
    http://www.domain2.com/$1 [R=301,L]
        </IfModule>
    或者:    <IfModule mod_rewrite.c>
            RewriteEngine on
            RewriteCond %{HTTP_HOST} !^www.domain2.com$
            RewriteRule ^/(.*)$
    http://www.domain2.com/$1 [R=301,L]
        </IfModule>

    注意:^/(.*)$  其中 其中^表示正在表达式匹配,/ 是表示基目录,意思是从域名后开始匹配。而后面的$1==(.*)   $1用来表示前面基目录后面匹配的任意字符,有时不带上在重写的时候不带上这个/ 出错


    前面%{HTTP_HOST}表示当前访问的网址,只是指前缀部分
    %{REQUEST_URI}表示访问的相对地址,就是相对根目录的地址,就是域名/后面

    example :

    赛卡软件近期更换了域名,新域名为www.sicasoft.com, 更加简短好记。这时需要将原来的域名ss.kiya.cn, 以及论坛所在地址ss.kiya.cn/bbs/定向到新的域名,以便用户可以找到,并且使原来的论坛 URL 继续有效而不出现 404 未找到,比如原来的http://ss.kiya.cn/bbs/tread-60.html, 让它在新的域名下继续有效,点击后转发到http://bbs.sicasoft.com/tread-60.html,而其他网页,如原先的http://ss.kiya.cn/purchase不会到二级域名bbs.sicasoft.com/purchase上,而是到www.sicasoft.com/purchase
    按照这样的要求重定向规则应该这样写:

        RewriteEngine On
        RewriteCond %{REQUEST_URI} ^/bbs/
        RewriteRule ^bbs/(.*)
    http://bbs.sicasoft.com/$1 [R=permanent,L]
        RewriteCond %{REQUEST_URI} !^/bbs/
        RewriteRule ^(.*)
    http://www.sicasoft.com/$1 [R=permanent,L]

  • 相关阅读:
    数据结构:树[data struct: tree]
    关于计算机学科的一些期刊和会议(转)
    这个世界究竟是怎么了
    [思考]怎么在C#中加入新功能
    vsta相关
    Practical numerical methods with C#
    C# (CSharp)中的foreach,for关键词
    代码生成相关
    没有可用于当前位置的源代码 解决办法
    access数据库删除两个日期之间 的数据 SQL语句
  • 原文地址:https://www.cnblogs.com/the-study-of-linux/p/5207156.html
Copyright © 2011-2022 走看看