如何重定向.htaccess文件中的特定URL

时间:2018-06-25 09:44:13

标签: .htaccess redirect mobile url-redirection

我只想将特定页面重定向到网站的移动版本。我可以使用以下代码重定向首页,但找不到重定向特定页面的方法。我想将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>

1 个答案:

答案 0 :(得分:0)

满足上述要求的工作代码如下

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]