.htaccess - 针对 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/ 请求,并重定向到主页,但无限循环继续进行。
解决方案
谢谢贾雷克巴兰。你的建议让我更接近,但并不完全在那里。我仍然需要将所有旧页面从 /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 没有无限循环
推荐阅读
- c++ - 矩阵中最有价值的“H”形区域?
- python - 加载保存的模型以恢复训练
- android - 如何忽略某些 UI 元素作为对讲的分隔符或 ImageViews?
- angular - 角度@Input获取对象对象
- javascript - Safari 和 Chrome 的 ascii 值不同
- node.js - 定义在 RabbitMQ 中删除消息时触发的 nodeJS 回调
- java - 无法在 RecyclerAdapter Android Studio 中切换视图
- node.js - 启动失败,然后监听端口
- python - 在 pandas 列中搜索多字符串
- c++ - CMake 导入的库 include_directories 在其他库之前