【问题标题】:How do I redirect specific URL's in the .htaccess file如何重定向 .htaccess 文件中的特定 URL
【发布时间】:2018-06-27 19:02:50
【问题描述】:

我只想将特定页面重定向到我网站的移动版本。我可以使用下面的代码重定向主页,但我找不到重定向特定页面的方法。我想将 https://www.richmond-medical.com/sm3 重定向到 http://m.richmond-medical.com/sm3 。 我的问题是,当我在手机上输入 Richmond-medical.com/sm3 时,它只会转到 http://richmond-medical.com。 这是我的代码:

<IfModule mod_rewrite.c>

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]

RewriteCond %{HTTP_HOST} ^www.Richmond-Medical.com$ [NC]    
RewriteCond %{REQUEST_URI} ^/sm3$    
RewriteRule ^/?a/(.*)$ http://m.richmond-medical.com/$ [R=301,L]

RewriteCond %{HTTP_HOST} richmond-medical.com [NC]
RewriteCond %{REQUEST_URI} ^/$
Rewriterule ^(.*)$ http://m.richmond-medical.com [L,R=301]

</IfModule>

【问题讨论】:

  • 欢迎来到 Stack Overflow 社区 Jonathan。我提供了工作示例。如果它解决了您的问题,请通过单击答案附近的右侧按钮接受它,让其他 SO 用户知道。如果您正在为解决方案而苦苦挣扎,请给我留言。
  • 谢谢它很好用 - 我刚刚尝试过 - 我还有一个关于此代码的问题,如果你能提供帮助,请参阅下文。再次感谢我真的很感谢你的时间:)

标签: .htaccess redirect mobile url-redirection


【解决方案1】:

上述要求的工作代码如下

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?(R|r)ichmond-medical.com$ [NC]    
RewriteCond %{REQUEST_URI} ^/sm3$ [OR]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ https://m.richmond-medical.com/$1 [R=301,L]

我在 [OR] 子句 中结合了这两个规则,以便根域重定向到移动设备,而 sm3 重定向到移动设备。

.htaccess 规则可以在.htaccess tester进行测试

如果您有一些需要重定向到移动页面的新页面,您可以将其添加到 [OR] 子句中,例如如果我们需要重定向 sm5,我们只需在 [OR] 子句中添加 sm5。我们也可以使用| 在相同的重写条件下使用它,如下所示。

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?(R|r)ichmond-medical.com$ [NC]    
RewriteCond %{REQUEST_URI} ^(/sm3|/|/sm5)$
RewriteRule ^(.*)$ https://m.richmond-medical.com/$1 [R=301,L]

【讨论】:

  • 您的代码运行良好@AnkitRastogi 我无法在任何地方找到答案。我还需要访问文件中的一项功能。如果有人要在他们的手机上输入 Richmond-medical.com/sm3,它只会重定向到手机主页。我将如何修改此代码以捕获重定向?
  • 更新了答案。添加了 (R|r) 条件。如果可行,请支持答案,否则请发表评论。
  • 我不认为它只是大写字母,尽管这确实有帮助。如果我输入完整路径richmond-medical.com/sm3,则重定向有效,或者如果我导航到移动设备上的页面,它也有效。但是,最终用户可以键入 richmond-medical.com/sm3。主站点在 https 中,而移动站点仅在 http 中。我已经修改了您的代码,通过将重写规则更改为 http 来包含仅适用于移动网站的 http。顺便说一句,我赞成你的回答,但我没有足够的影响力让它公开展示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
  • 2020-09-14
相关资源
最近更新 更多