图片展示
图片展示

400-8300-663

用.htaccess文件实现URL重写

浏览: 发表时间:2017-12-24 00:00:00

你是否曾经对一些网站的网址看起来非常清爽,没有任何.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 文件的格式如下:

    
     RewriteEngine On
     #这里是你的规则
    

     解释:RewriteEngine On :启动URL重写引擎
     先看如下一个配置好了的 .htaccess 文件实例:


  
      RewriteEngine On
      RewriteRule ^index\.html$ /index.php [L]
      RewriteRule ^shop/(.+)/$ shop/shop.php?providerId=$1 [L]
  

    分析:上面 .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.cnblogs.com/wangkongming】

 

 

【长短地址转换】

 

利用URL重写,我们可以很方便地实现长短地址的转换,但是用重定向就不合适了。

RewriteEngine On
RewriteRule ^grab /public/files/download/download.php

若访问
http://mysite/grab?file=my.zip
则会执行该页面:
http://mysite/public/files/download/download.php?file=my.zip

 

【去掉www】

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]
 

 

【加上www】

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule (.*) http://www\.%1/$1 [R=301,L]


用.htaccess文件实现URL重写
你是否曾经对一些网站的网址看起来非常清爽,没有任何.php或.html后缀感到奇怪?他们就是这样做到的。1、安装 mod_rewrite 模块     因为 A
长按图片保存/分享
1

域名合作伙伴:

新网、中资源、时代互联、商中在线、

三五互联、西部数码

联系我们

上班时间号码:0757-28363863 / 28310083 / 28314601

非上班时间号码: 0757-28310083 转分机号 8805 或分机号 8806

传真: 0757-28314601

图片展示

Copyright © 2007-2023     佛山市百川网络科技有限公司    ALL RIGHTS RESERVED.

ICP备案号:粤ICP备09160757号     粤公网安备 44060602000782号

全国服务热线
400-8300-663
办公热线
0757-28363863
二维码
扫码关注
添加微信好友,详细了解产品
使用企业微信
“扫一扫”加入群聊
复制成功
添加微信好友,详细了解产品
我知道了