首页 > 解决方案 > 针对 m 和 m/

问题描述

我正在尝试以 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/ 请求,并重定向到主页,但无限循环继续进行。

标签: .htaccess

解决方案


谢谢贾雷克巴兰。你的建议让我更接近,但并不完全在那里。我仍然需要将所有旧页面从 /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 没有无限循环


推荐阅读