首页 > 技术分享 > LNMP|WAMP
收藏

简述Apache重定向Rewrite

05/19 16:27
大潇博客 原创文章,转载请标明出处

Apache伪静态和重定向,可以写到根目录的.htaccess文件中


首先写上RewriteEngine On,声明加载mod_rewrite模块,然后开始写规则


假设访问daxiao.show时,跳转www.baidu.com,后面的参数也要跟着,不能丢

RewriteCond %{HTTP_HOST} ^daxiao\.show$   

RewriteRule ^(.*)$ http://www.mbanews.net/$1 [L]

由此简单案例可以看出:

RewriteCond 匹配访问的域名

RewriteRule 后面跟的是访问域名的参数,不需要再加域名信息,再后面是要跳转的域名


假设访问img.daxiao.show时,跳转img.baidu.com,后面的参数不变

RewriteCond %{HTTP_HOST} ^(.+)\.daxiao\.show$   

RewriteRule ^(.*)$ http://%1.baidu.com/$1 [L]

由此案例看出,匹配的二级域名,在跳转的域名处使用“%1”表示


通过上面的简单案例,延伸下面案例:

  1. 访问m.test.daxiao.show时,跳转到m.test.daxiao.show/index.php?m=wap

  2. 访问m.test.daxiao.show/school-5-10.html,跳转到m.test.daxiao.show/index.php?m=wap&c=index&a=show&catid=5&id=10

RewriteCond %{HTTP_HOST} ^m.test.daxiao.show$   

RewriteRule ^$ http://m.test.daxiao.show/index.php?m=wap [L]

RewriteRule ^school-(.*)-(.*).html$ /index.php?m=wap&c=index&a=show&catid=$1&id=$2 [L]

由上面的案例看出,同一个域名多个RewriteRule规则时,RewriteCond匹配主域只需写一次即可


上面每个RewriteRule最后面都会有“[L]”,这个表示rewrite时,不改变显示的url

不过这个在只有主域名没有参数时、rewrite到不同主域名时,不生效,浏览器显示的url将被强制改变。


打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311