我有点卡在这里。
我正在尝试以这种方式重定向我的subdmain。 anysubdomain.my_domain.com及其URL必须分别重定向到根域及其URL。
例如,如果用户尝试
(1)http://anysubdomain.my_domain.com
,它应重定向到 https: //www.my_domain.com
和
(2)如果用户尝试使用http://anysubdomain.my_domain.com/
anyurl ,则应将其重定向到 https: //www.my_domain.com
/ anyurl
我能够使用下面的htaccess代码完成(1)。谷歌搜索
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} !^www.my_domain.com$
RewriteRule ^(.*)$ https://www.my_domain.com/$1 [QSA,L,R=301]
</IfModule>
但是我无法完成(2)部分。
(2)如果用户尝试使用http://anysubdomain.my_domain.com/
anyurl ,则应将其重定向到 https: //www.my_domain.com
/ anyurl
在谷歌搜索时出现了一堆网址和示例,但第二部分却不起作用。
但是我不确定我们可以通过对上述htaccess代码进行修改来做到这一点。
任何帮助将不胜感激。先谢谢了。
请注意 我已经有了通配符cname,这就是为什么(1)可以正常工作。无需担心该cname事情。
这也是 wordpress网站-如果重要的话
答案 0 :(得分:3)
首先放置这些规则:
RewriteCond %{HTTP_HOST} !^www.my_domain.com$
RewriteRule ^(.*)$ https://www.my_domain.com/$1 [QSA,L,R=301]
像这样:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?my_domain\.com$
RewriteRule ^(.*)$ https://www.my_domain.com/$1 [QSA,L,R=301]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
注意:清除浏览器缓存测试。
答案 1 :(得分:0)
您可以使用此.htaccess来处理所有子域:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} (?:^|\.)(my_domain\.com)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
请确保在新浏览器中对其进行测试,以完全清除浏览器缓存。