首页 > 解决方案 > 有条件的 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 中。

标签: .htaccessredirect

解决方案


您可以使用此规则将每个不是子域的 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]

推荐阅读