• Apache .htaccess Rewrite规则 初体验


         但是又因为不熟悉rewrite,做了如下的调整,手动建立了一堆的文件夹:
      
      这样的目录结构,维护起来相当麻烦。每次新加一个页面,都要开一个文件夹。
      
      其实采用左边那套结构部署上去,服务器稍做设置,就可以支持我们想要的URL效果。
      
      如何玩rewrite
      
      首先看看自己的服务器是否支持.htaccess
      
      如果支持这货,就不用每次写条规则就重启一次服务器了,便于测试。
      
      redirect301/test.htmhttp://uicss.cn/
      
      成功的话,当你访问xxx.com/test.htm的时候,会自动跳到我的博客。
      
      不成功的话,需要开启一下.htaccess:
      
      打开confhttpd.conf,查找#LoadModulerewrite_module,将#号去掉,加载该模块
      
      打开confextrahttpd-vhosts.conf,查找AllowOverrideNone,将None变更为All
      
      环境准备完成后,还需要对“模式匹配”中特殊字符在rewrite的解读做一下了解:
      
      *代表前面0或更多个字符
      
      +代表前面1或更多个字符
      
      ?代表前面0或1个字符
      
      ^代表字符串的开始位置
      
      ^在方括号里代表“非”,例如[^/]代表非斜杠。
      
      $代表字符串结束的位置
      
      .代表任何字符(也就是通配符)
      
      取消后面字符的特殊意思,转为原义字符。
      
      ——这部分的理解出自《SEO艺术》第六章末
      
      开始干吧,打开.htaccess的rewrite
      
      RewriteEngineon
      
      把xxx.htm文件替换为xxx/
      
      RewriteRule^(.*)/$/$1.htm[L]
      
      再给一个例子加深理解,这是将服务器上的xxx.php文件替换成xxx.html
      
      RewriteRule^(.*).html$/$1.php[L]
      
      更多用法:
      
      让所有访问www.test.com/xxx/的用户跳转到test.com/xxx/
      
      RewriteCond%{HTTP_HOST}^test.com[NC]
      
      RewriteRule^(.*)$http://uicss.cn/$1[L,R=301]
      
      对指定目录开启转向的代码:
      
      RewriteBase/top/
      
      带搜索参数的转向:
      
      RewriteRule^search/(.+)?$/index.php?s=$1[QSA,L]
      
      目录末尾补斜线:
      
      RewriteRule^(.+[^/])$/$1/[R]

  • 相关阅读:
    几个常见移动平台浏览器的User-Agent
    正则表达式那些事儿(三)
    正则表达式那些事儿(二)
    正则表达式那些事儿(一)
    jQuery官网plugins栏目下那些不错的插件
    UVA 11729 Commando War 突击战 【贪心】
    HDOJ 2084 数塔 【dp】
    HDOJ 1465 不容易系列之一 【错排公式 递推】
    HDOJ 2046 骨牌铺方格 【递推】
    HDOJ 2044 一只小蜜蜂... 【递推】
  • 原文地址:https://www.cnblogs.com/y0umer/p/2766950.html
Copyright © 2020-2023  润新知