首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一.htaccess文件中的2个条件。

同一.htaccess文件中的2个条件。
EN

Stack Overflow用户
提问于 2012-07-09 13:02:19
回答 1查看 184关注 0票数 0

当我从手机上点击时,我会尝试这样做,我会重定向到手机网站,而从pc上则意味着正常的网站。但是这些条件不能正常工作。

代码语言:javascript
复制
<IfModule mod_rewrite.c>
  RewriteEngine on


  RewriteCond %{HTTP_USER_AGENT} "{android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile}" [NC]
  RewriteRule ^(.*)$ http://localhost:8080/home.html [L,R=301]

  RewriteCond %{HTTP_USER_AGENT} "!{android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile}" [NC]
  RewriteRule ^abc.html$ /abc1.html [R=301,L]
  RewriteRule ^1.html$ /2.html [R=301,L]

</IfModule>

当我在移动设备上点击localhost时,我正确地得到了移动网站,但如果我给了localhost/abc.html,第二个条件就会出现,但实际上它应该转到移动网站。代码有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-09 17:25:10

与其说是一个ans,不如说是你的方法的一组要点:

  • 为什么在cond正则表达式中使用{}而不是正确的()?
  • 第二个cond是多余的,因为倒数总是与prevoius L规则匹配?(规则3没有这个条件BTW.
  • 你应该使用RewriteBase /,因为如果你不
  • 省略规则2和3上的前导/替换字符串

最后,也是最重要的,为什么要做301重定向,而不是简单的内部重定向,这样就不需要额外的往返和/或301s的浏览器缓存?

代码语言:javascript
复制
RewriteCond %{HTTP_USER_AGENT} (android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile) [NC]
RewriteRule ^(.*)$ mobile/home.html [L]

RewriteRule ^abc.html$ abc1.html    [L]

RewriteRule ^1.html$   2.html       [L]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11389320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档