注:第一部分来自 http://www.cnblogs.com/wangkongming/archive/2012/11/13/2768251.html     这位博主的个人网站简洁   还有诗歌  我我我 。。 喜欢喜欢喜欢

第二部分  是自己实践中写的

【一】

你是否曾经对一些网站的网址看起来非常清爽,没有任何.php或.html后缀感到奇怪?他们就是这样做到的。

1、安装 mod_rewrite 模块
     因为 Apache 服务器默认是没有打开 mod_rewrite 模块的,所以我们必须手动来启动。打开 Apache 的配置文件 httpd.conf 文件,找到下面一行:
     #LoadModule rewrite_module modules/mod_rewrite.so
    
前面的 # 号是 Apache 配置文件的注释符,也就是 Apache 服务器没有加载该模块。将前面的 # 号去掉,保存后重启 Apache
服务器,这是我们就实现了加载 mod_rewrite 这个模块了。(提示:任何一次对 Apache 的配置文件 httpd.conf
文件都是要重新启动 Apache 才能生效的)

2、新建 .htaccess 文件
     在 windows
系统默认的情况下是不能新建没有文件名的文件的,这里建议大家使用 vim 这个编辑器来新建。方法是打开 vim 编辑器随便输入一段文字,然后保存为
.htaccess 即可。很多朋友因为习惯了 windows
系统,所以新建这个文件很头疼。还有就是文件名一定不要错,我今天写的时候把文件保存成了.htacess,看到没有,少了一个c,怎么调试都不对,还好
最后发现了这个低级错误。

3、配置 .htaccess 文件
     .htaccess 文件务必放在你项目的根目录下,不要放在其他文件夹下。配置 .htaccess 文件的格式如下:

<ifmodule mod_rewrite.c>
     RewriteEngine On
     #这里是你的规则
     </ifmodule>

解释:RewriteEngine On :启动URL重写引擎
     先看如下一个配置好了的 .htaccess 文件实例:
  <ifmodule mod_rewrite.c>
      RewriteEngine On
      RewriteRule ^index\.html$ /index.php [L]
      RewriteRule ^shop/(.+)/$ shop/shop.php?providerId=$1 [L]
  </ifmodule>

分析:上面 .htaccess 文件就写了二条规则。当在浏览器中输入 index.html 时,后台调用的是 index.php
文件。符号“^”是以后面的字符开头,相信熟悉正则表达式的朋友不会陌生吧,符号“$”是以前面的字符结尾。符号L表示停止处理接下来的规则。最后一条当
我们在浏览器中输入 shop/2322 时,后台调用 shop.php文件并传递参数provider=2322 。
    配置规则,大家照着那一条去写吧,记得每行后面加个 L 符号。

再写一个:

http://www.yourdomin.com/category.php?id=12 想重写成 http://www.yourdomin.com/category/12

  RewriteRule  ^category/([0-9]+)$  category.php?id=$1

如果有多页的文章 如:http://www.yourdomin.com/category.php?id=12&page=3 重写成 http://www.yourdomin.com/category/12/3

  RewriteRule ^category/([0-9]+)/([0-9]+)$  category.php?id=$1&page=$2

如果你想升级你的站点,又要保证老的链接都可用,你也可以通过mod_rewrite模块来实现。你仅仅需要写一个规则之处这个网页被永久的移动了。例子如下:

  RewriteRule ^oldpage.html$ newpage.html [R=301]

记录下来,以后还会用到。

【二】

 
其实我想要的效果就是像他的个人网站那样 http://www.wangkongming.cn/category/诗歌/    链接的地址这样显示
 
//  重定向   链接不带后缀
RewriteRule ^(blog)([\w/]*)\.([a-zA-Z]+)$          /$1$2 [R=302]

() 括号对应$ 的内容
302 暂时重定向
301 永久重定向
/$1$2    这个 / 可以去掉系统加在链接上的地址。。。大概这个意思吧
 
上面这句的效果是:将http://www.wangkongming.cn/category/index.html   链接重定向为 http://www.wangkongming.cn/category/index
 
--------------------------------------------------------------------------------------------------------------------------------------
但是 http://www.wangkongming.cn/category/index  是访问不到的。因为生成静态后,文件夹中的文件是 http://www.wangkongming.cn/category/index.html  这种带后缀的文件
所以有了下面这句:
 
 //使网站地址  category/index  可以访问到 category/index.html  
RewriteRule ^(blog)([\w/]*)$          $1$2\.html [QSA,L]
 
上面这句的效果是:使 http://www.wangkongming.cn/category/index  可以访问  http://www.wangkongming.cn/category/index.html
--------------------------------------------------------------------------------------------------------------------------------------
 
我觉得 这两句结合的话,应该是可以达到我想要的:
 
//循环重定向
RewriteEngine On
RewriteRule ^(blog)([\w/]*)\.html$           /$1$2 [R=302,L]
RewriteRule ^(blog)/([\d]*)         /$1/$2\.html [QSA,L]

 
但是浏览器报错  :请求地址在循环重定向
 
恩 ,然后没有解决的
 
.htaccess  放在根目录
 
这个网站系统是 基于PHP的
 
 
 
 
 
 
 
 

用.htaccess文件实现URL重写的更多相关文章

  1. .htaccess文件讲解

    .htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户 ...

  2. (Nginx和PHP下)URL重写,TP实现URL重写

    UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址. 优点 一:提高安全性,可以有效的避免一些参数名.ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话 ...

  3. Apache .htaccess文件

    今天在将ThinkPHP的URL模式由普通模式(URL_MODE=1)http://localhost/mythinkphp/index.php/Index/user/id/1.html改为重写模式 ...

  4. Apache 和 Nginx 下的 URL 重写

    URL 重写和重定向 URL 重写是将页面映射到本站另一页面, 而重定向则是将页面映射到另一主机(域名). 其中临时重定向(R=302)和永久重定向(R=301)都是亲搜索引擎的, 是 SEO 的重要 ...

  5. URL重写案例

    实现url重写的基本方法:  将下载的URLRewriter.dll,放到你的web程序的bin下 然后在web.config里配置如下: <?xml version="1.0&quo ...

  6. .htaccess文件url重写小记

    .htaccess文件url重写 当上一条规则匹配 并转换后 符合下一条规则的 继续下一条的匹配转换 RewriteRule ^shangpin-([0-9a-zA-Z]+)/category-([0 ...

  7. .htaccess文件 301重定向URL重写[NC][R][F][L]是什么意思

    .htaccess中的[NC][R][F][L]几个标记是什么意思 NC: no case,就是说不区分大小写 R:redirect,重定向 F:forbidden,禁止访问 L:last,表示已经是 ...

  8. htaccess URL重写rewrite与重定向redirect(转)

    1. 将 .htm 页面映射到 .php 1 Options +FollowSymlinks 2 RewriteEngine on 3 RewriteRule ^(.*)\.htm$ $1.php [ ...

  9. .htaccess技巧: URL重写(Rewrite)与重定向

    URL重定向是.htaccess的重头戏,它可以将长地址转为短地址.将动态地址转为静态地址.重定向丢失的页面.防止盗链.实现自动语言转换等.笔者觉得难点是在正则表达式的运用和理解上.有关htacces ...

随机推荐

  1. Python中关于字符串的问题

    在Python里面,字符串相加经常会出现'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)这样的 ...

  2. PHP核心技术与最佳实践——全局浏览

    难得买到并喜欢一本好书,‘PHP核心技术与最佳实践’. 几天时间,先看了个大概,总结一下整体是什么样子的,怎么看怎么学. 1.总共14章: 2.第1.2章讲PHP的OOP: 其中第一章侧重于PHP的O ...

  3. 1877: [SDOI2009]晨跑

    1877: [SDOI2009]晨跑 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2007  Solved: 1085[Submit][Status][ ...

  4. 负margin的移位参考线

    同早年~ 问题描述 在xx项目中,羊城通卡号的输入框处使用了xx库中的实现方式,即将提示文字标签<label>通过负margin移位到<input>框的下面.静态时展现良好,j ...

  5. AppBoxPro - 细粒度通用权限管理框架(可控制表格行内按钮)源码提供下载

    特别声明: 提供的源代码已经包含了 AppBoxPro 的全部源代码,用 VS2012 打开项目后,直接 Ctrl+F5 可以运行起来(默认使用VS自带的LocalDB数据库). FineUIPro是 ...

  6. 【原】Spark之机器学习(Python版)(二)——分类

    写这个系列是因为最近公司在搞技术分享,学习Spark,我的任务是讲PySpark的应用,因为我主要用Python,结合Spark,就讲PySpark了.然而我在学习的过程中发现,PySpark很鸡肋( ...

  7. [干货]Chloe官网及基于NFine的后台源码毫无保留开放

    扯淡 经过不少日夜的赶工,Chloe 的官网于上周正式上线.上篇博客中LZ说过要将官网以及后台源码都会开放出来,为了尽快兑现我说过的话,趁周末,我稍微整理了一下项目的源码,就今儿毫无保留的开放给大家, ...

  8. 用vue.js学习es6(二):let和const使用

    一.运行及关闭运行: 在上一节中我们用shift+右击在C:\vue\es6文件夹中打开命令行使用:npm run dev,打开了我们的vue界面. 如果要关闭则在命令行中按住ctrl+C则可以关闭. ...

  9. Hibernate+EhCache配置二级缓存

    步骤: 第一步:加入ehcache.jar 第二步: 在src目录下新建一个文件,名为:ehcache.xml 第三步:在hibernate配置文件的<session-factory>下配 ...

  10. Sprng ecache

    Ehcache是一种广泛使用的开源java分布式缓存,它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点. 主要的 ...