定位m和m /

时间:2019-06-11 23:10:12

标签: .htaccess

我正在尝试将www.mydomain / m和www.mydomain / m /定位为重定向。

我以前使用子域m.mydomain.com在服务器上的/ m /目录之外提供适合移动设备使用的页面

我不再这样做了,现在将那些请求重定向到主站点,这很好。

但是,对/ m或/ m /的请求现在会导致无限循环的重定向。

从旧的m.mydomain.com进行的重定向非常复杂,我需要在服务器上保留/ m目录。

我通过注释掉指令来调整了.htaccess的相关部分(在mydomain.com和m.mydomain.com中),但是,当然,这破坏了我尝试执行的主要重定向,但是它没有解决问题。

这是/ m目录.htaccess所具有的,并成功将流量重定向到主站点:

redirect 301 / https://www.example.com/

因此,我现在正试图仅针对产生无限循环的请求,即/ m和/ m /,并将其重定向到首页,即www.mydomain.com

我已经尝试过(在mydomain根目录.htaccess中):

RewriteCond %{REQUEST_URI} "^\/m$" [NC] RewriteRule ^ https://www.example.com/ [R=301,L]

RewriteCond %{REQUEST_URI} "^\/m\/$" [NC] RewriteRule ^ https://www.example.com/ [R=301,L]

我希望这些对象将针对/ m和/ m /请求,并重定向到主页,但是对于这两个请求,无限循环仍在继续。

2 个答案:

答案 0 :(得分:0)

将此规则添加到/ m /目录.htaccess中

RewriteEngine On
RewriteRule (.*) https://www.example.com/ [R=301,L]

将此规则添加到您的mydomain根.htaccess顶部

RewriteEngine On
RewriteRule ^m\/$ https://www.example.com/ [R=301,L]
RewriteRule ^m$ https://www.example.com/ [R=301,L]

答案 1 :(得分:0)

感谢JarekBaran。您的建议使我离我很近,但不完全到此。我仍然需要将所有旧页面从/ m目录重定向到新位置(相同的目录名称,相同的文件名)。

这是最终有效的方法:

在.htaccess根目录中:

RewriteCond %{REQUEST_URI} !^/m$ [NC]
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

在/ m目录.htaccess中:

RewriteCond %{REQUEST_URI} !^m$ [NC]
RewriteRule (.*) https://www.intmath.com/$1 [R=301,L]

现在,这会将旧的m.example.com/directory/page重定向到www.example.com/directory/page,并且www.example.com/m没有无限循环