热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » AMPZ/Nginx/IIS发布安装 » 在XP操作系统下Apache Mod_Rewrite实现URL重写的配置方法

在XP操作系统下Apache Mod_Rewrite实现URL重写的配置方法

论坛链接
  • 在XP操作系统下Apache Mod_Rewrite实现URL重写的配置方法
  • 发布时间:2011-07-29 14:46:04    浏览数:11546    发布者:tznktg    设置字体【   
前段时间朋友的网站由于在做SEO URL的规划,需要利用Apache的Mod_Rewrite对URL进行重写,实现网站伪静态化。在拿到他们提供的URL规划方案后,我做了测试,大家可以看一下。

  测试环境:

  Windows xp

  PHP4.3

  Apache2.0.58

  配置步骤:

  第一步:找到apache的配置文件httpd.conf(文件在conf目录下)

  第二步:你首先必须得让服务器支持mod_rewrite,如果你使用的是虚拟主机,请事先询问你的主机提供商。

  打开httpd.conf,找到

  #LoadModule rewrite_module modules/mod_rewrite.so

  把#去掉

  找到AllowOverride None 改成 AllowOverride All,

  注:AllowOverride 的参数设置为ALL,表示整台服务器上都支持URL规则重写。Apache 服务器要读每个网站下目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则就不会有任何效果。

  对于不同的网址,需要在APACHE中增加如下内容

  <Directory “E:/Apache Group/Apache2/htdocs/leapsoul”>

  /*引号里代表你的web存放目录*/

  /*如果是Linux,只要你定位到你网站目录即可*/
   Options FollowSymLinks
   AllowOverride None

  </Directory>

  第三步:重启apache服务器,先按stop再start。

  第四步:在你需要URL重写的网站目录下放一个.htaccess文件,文件名是.htaccess,Windiws下不能直接建立,你可以用记事本另存为。

  注:我测试的时候在每个需要伪静态的目录下都存放了对应的.htaccess文件,同时在httpd.conf文件中像第二步那样对相关的目录添加了相应的<Directory>..</Directory>代码。

  第五步:在.htaccess中通过正则表达式映射需要伪静态的页面。

  URL正则表达式如下:

  RewriteEngine on
  RewriteRule index.html index.php
  RewriteRule (\d+).html$ info\.php\?infoid=$1

  注:URL规划的方案例子:

  www.leapsoul.cn/info/info.php?infoid=100

  映射为

  www.leapsoul.cn/info/100.html

  配置结束。

  在Linux下基本上没啥变动,我只修改了相关目录地址,运行正常。

  以上就是我关于利用Apache的mod_rewrite对URL重写的具体操作步骤,从而实现了网站URL伪静态化。有需要的朋友可以参考,有更好实现办法的也可以给我留言。
      4、开启支持rewrite module

#LoadModule rewrite_module modules/mod_rewrite.so

去前面掉#,修改为


LoadModule rewrite_module modules/mod_rewrite.so

<Directory />
Options FollowSymLinks
AllowOverride None # 修改为AllowOverride All #
Order deny,allow
Deny from all
Satisfy all
</Directory>


<Directory "d:/wamp/www/">
#
# 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.2/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 None # 修改为AllowOverride All #
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
      我们知道,搜索引擎是偏爱静态页面的,因此,把诸如:http://www.jianglb.com/?p=123的页面改成http://www.jianglb.com/apaeche-rewrite.html显然有利于被搜索.

但是,如果一般的直接用http://www.jianglb.com/apaeche-rewrite.html而又不存在这地址的文件,就肯定会报错文件不存在.

这就要使用到Apache的rewrite模块,把这些URL重定向某个动态程序如index.php,当然,index.php也需要有相应的程序识别这些地址,以从数据库存取数据.

启用rewrite,要确认apache配置文件:httpd.conf中有
LoadModule rewrite_module libexec/mod_rewrite.so

网站所在的目录定义了下面的内
容:
Options Indexes FollowSymLinks
AllowOverride all

网站所在目录还必须包括一个.htaccess
内容为:
rewriteengine on
rewritebase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

如此则URL请求自动发送到index.php了



我写了个正值表达试是这样的
RewriteRule ^/*(.*?)/r_(.*?)-(.*?)-(.*?)-(.*?)-(.*?)\.html $1/$2.php?type1=$3&type2=$4&type3=$5&page=$6
伪静态格式必须为r_xxx-变量1-变量2-变量3-变量4.html
有什么正值表达式如果有一个变量就r_xxx-变量1.html
二个变量就r_xxx-变量1-变量2.html
三个变量就r_xxx-变量1-变量2-变量3.html
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理