首页 > 解决方案 > 通过 htaccess 进行域重定向

问题描述

我刚刚向我的共享主机添加了一个插件域,cPanel 还在我的主域下创建了一个子域,通向我刚刚添加的插件域。

我不希望用户能够通过 cPanel 创建的主域 (addon_name.primarydomain.com) 的子域以新的插件名称访问我的辅助网站。这就是为什么我决定创建一个简单的 .htaccess 文件,它会自动将任何尝试访问 addon_name.primarydomain.com 的用户重定向到我的 primarydomain.com

#Redirecting if the URL is encrypted
RewriteCond %{HTTPS_HOST} ^addon_name\.primarydomain\.com$ [NC]
RewriteRule ^$ https://primarydomain.com/? [L,R=301]

# Redirecting if the URL is NOT encrypted.
RewriteCond %{HTTP_HOST} ^addon_name\.primarydomain\.com$ [NC]
RewriteRule ^$ http://primarydomain.com/? [L,R=301]

但是,在运行此代码时,我发现了以下问题,并且由于我对 .htaccess 不是很有经验,如果有人能解释我做错了什么,我将不胜感激。

1) 当我尝试输入 addon_name.primarydomain.com 时,它会将我重定向到 primarydomain.com = WORKS。

2) 当我尝试输入http://addon_name.primarydomain.com时,它会将我重定向到 primarydomain.com = WORKS。

3) 当我尝试输入 www.addon_name.primarydomain.com 时,它不想将我重定向到 primarydomain.com = ERROR。

4) 当我尝试输入http://www.addon_name.primarydomain.com时,它不想将我重定向到 primarydomain.com = ERROR。

5) 当我尝试输入 addon_name.primarydomain.com/something/index.html 时,它会将我重定向到 primarydomain.com/something/index.html 而不仅仅是 primarydomain.com = ERROR。

标签: .htaccess

解决方案


看起来这个稍微修改过的版本就是你想要表达的:

RewriteEngine on
RewriteCond %{HTTPS_HOST} (^|www\.)addon_name\.primarydomain\.com$ [NC]
RewriteRule ^ https://primarydomain.com/ [QSD,R=301]

推荐阅读