配置.htaccess文件实现URL地址重写

原创 2012年03月29日 11:35:37
     很多站长朋友都注意到一个实现了URL地址静态化的动态网站往往在搜索引擎中能够获得一个好的排名。的确,在搜索引擎中随便搜索一个关键词,排名靠前的基本都是静态页面。这篇文章豆芽给大家介绍如果通过.htaccess文件来将URL地址静态化。
     
      值得大家注意的是,这里配置 . htaccess 文件是在你的服务器是 apache 的情况下,如果你的服务器是 IIS 的话,那就需要配置 httpd.ini 文件了。怎么配置 httpd.ini 文件,豆芽在前面文章中有专门提到过,不熟悉的朋友可以再去看一下,在SEO教程里面。
      这里我们要实现怎样一个功能呢?简要说就是你在浏览器地址栏中输入一下地址:
      http://www.aichengxu.com/index.html 
      但是你的项目中压根就没有这个文件,如果没有使用 .htaccess 文件实现URL地址重写的话,那么你的浏览器中将显示一个 404 的错误,提示你该页面没有找到。如果使用户在输入了上面的网址后不提示 404 错误,并且转到我们想向用户展示的页面呢?那就需要配置 .htaccess 文件。

     什么是 .htaccess 文件呢?实际上 .htaccess 文件中是我们定义的一些规则,这些规则将实现像上面那样输入请求的URL地址,转换为另一个URL地址,而不是浏览器默认的提示404页面没有找到。URL地址重写这项功能由 Apache 服务器通过 mod_rewrite 模块提供。PHP不用对他做任何的处理。

     下面豆芽向大家详细介绍步骤

     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 系统,所以新建这个文件很头疼。vim 这款编辑器很不错,推荐大家用。下载地址:www.vim.org/download.php 

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

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

     解释:RewriteEngine On :启动URL重写引擎
     先看如下一个配置好了的 .htaccess 文件实例:
    <ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^index\.html$ /aichengxu/index.php [L]
    RewriteRule ^column/(.*)/([0-9]*).html$ /aichengxu/column.php?ID=$2 [L]
    </ifmodule>
    分析:上面 .htaccess 文件就写了二条规则。当在浏览器中输入 index.html 时,后台调用的是 index.php 文件。符号“^”是以后面的字符开头,相信熟悉正则表达式的朋友不会陌生吧,符号“$”是以前面的字符结尾。符号L表示停止处理接下来的规则。最后一条当我们在浏览器中输入 column/23/22.html 时,后台调用 column.php文件并传递参数ID=22 。
    配置规则,大家照着那一条去写吧,记得每行后面加个 L 符号。

用.htaccess文件实现URL重写

你是否曾经对一些网站的网址看起来非常清爽,没有任何.php或.html后缀感到奇怪?他们就是这样做到的。 1、安装 mod_rewrite 模块      因为 Apache 服务器默认是没有打开 m...
  • u013027894
  • u013027894
  • 2016年02月27日 14:43
  • 650

URL RewriteRule在httpd.conf和.htaccess中的不同点

转载:http://hi.baidu.com/05809/item/9a0dac1a93c152f586ad4ee2 相信熟悉Web Server的人一定熟悉Apahce。相信熟悉A...
  • zhangxinrun
  • zhangxinrun
  • 2013年11月17日 14:52
  • 3361

通过正则表达式获取标准url地址的域名和文件后缀名

形如“http://www.abcdef.com/index.php”或“http://www.abcdef.com/index.php?g=Index&m=Index&a=index”的地址即为标准...
  • u013049553
  • u013049553
  • 2016年05月13日 21:43
  • 7650

获取url中问号后面的参数

原理:将url字符串以“=”分割成两部分,取第二部分就可以了        var url = "http://192.168.100.47:8080/cloud-manage/htm...
  • abcyyjjkk
  • abcyyjjkk
  • 2017年01月05日 15:51
  • 2381

paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换

paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换 #---KEYWORD #-正则表达式 正则表达式 表示 非指定字符串开头的正则 排除指...
  • attilax
  • attilax
  • 2014年05月02日 23:50
  • 1094

正则表达式中问号等特殊字符的转义

在.NET Framework 开发人员指南 的 字符转义 一节 有这样一段话。除 .$ ^ { [ ( | ) * + ? / 外,其他字符与自身匹配。但是其中并未注明这些字符应该匹配为什么字符。为...
  • liehuo123
  • liehuo123
  • 2009年07月23日 01:12
  • 2776

用.htaccess实现网址规范化

网址规范化在SEO中是一个比较重要的环节,同时存在不同的网址版本,不但可能造成复制,还不能正确的集中权重。目前大多数网站,绑定域名都有带WWW和不带两个版本,甚至很多网站同时绑定多个域名。经过处理(跳...
  • phphot
  • phphot
  • 2008年01月03日 14:24
  • 766

Apache Rewrite处理?问号后的请求参数

原文地址:http://www.netroby.com/html/2011/techdocument_0509/138.html 最近把一个项目从nginx转移到apache下面,有些rewrite...
  • oceansky123
  • oceansky123
  • 2014年08月20日 19:09
  • 879

配置.htaccess文件实现URL地址重写

很多站长朋友都注意到一个实现了URL地址静态化的动态网站往往在搜索引擎中能够获得一个好的排名。的确,在搜索引擎中随便搜索一个关键词,排名靠前的基本都是静态页面。这篇文章豆芽给大家介绍如果通过.htac...
  • zacklin
  • zacklin
  • 2012年03月29日 11:35
  • 1714

ThinkPHP3.2.3的URL重写时遇到No input file specified的解决方法,htaccess规则问题

因为在Fastcgi模式下,php不支持rewrite的目标网址的PATH_INFO的解析  ThinkPHP运行在URL_MODEL=2时,会出现 No input file specified....
  • zjb841287647
  • zjb841287647
  • 2016年02月22日 15:01
  • 4352
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:配置.htaccess文件实现URL地址重写
举报原因:
原因补充:

(最多只允许输入30个字)