.htaccess - 有条件的 htaccess 重定向
问题描述
是否可以使用 .htaccess 进行条件重定向,如果有人直接访问我的域(example.com),他将被重定向到子域(subdomain.example.com)或者可能是另一个域,但是如果有人通过特定的 URL (example.com/magic) 访问它,他被重定向到 example.com 即主域。
换句话说,我希望我的用户只有在使用 example.com/magic 时才能访问主域 (example.com)。我的 htaccess 目前正在将主域的所有用户重定向到子域。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^/?$ "https\:\/\/sub\.example\.com" [R=301, L]
但我找不到如何将条件放入我的 htaccess 中。
解决方案
您可以使用此规则将每个不是子域的 URI 重定向/magic
到/magic/
子域:
RewriteEngine On
# redirect /magic
RewriteRule ^magic/?$ / [L,NC,R=301]
# redirect anything except /magic
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule !^(magic/?)?$ https://sub.example.com [R=301,L,NE]
推荐阅读
- c# - 使用 Mutex 的 C Sharp 多线程实现:顺序线程执行
- python - 如何在win 7 32位的python 3.6中安装tensorflow
- javascript - 自动填充电子表格列
- c - GIMP 比例图像三次插值代码
- angular - 如何创建以 iFrame 作为输入的 Angular 指令?
- python - 在 Heroku 上打开 Flask 应用程序时显示“应用程序错误”
- php - 重构数组数据,根据已有数据填充空值
- blazor - blazor 参数可以是一个只暴露 getter 属性的对象吗?
- android - 由于“未配置的表面”,无法在颤振相机上拍照
- c - 为什么这个可变参数 C 函数不打印第一个参数?