301将子目录中的www和其他子域重定向到非www

时间:2019-03-31 04:40:44

标签: .htaccess url redirect

301通过htaccess将子目录中具有任何子域的所有URL 重定向到非www

示例:

https://www.example.com/forum

https://example.com/forum

https://anysubdomains.example.com/forum

https://example.com/forum

https://www.example.com/forum/anysubdiretory

https://example.com/forum/anysubdirectory

https://anydubdomains.example.com/forum/anysubdiretory

https://example.com/forum/anysubdirectory

以下代码仅适用于www,但如何使其适用于所有子域:

RewriteEngine on

#the directory the rule should apply to
RewriteCond %{REQUEST_URI} ^/forum/  [NC]
#check if the host  string starts with "www"
RewriteCond %{HTTP_HOST} ^www\. [NC]
#redirect all www urls to non-www
RewriteRule (.*) https://example.com%{REQUEST_URI}  [L,R=301]

1 个答案:

答案 0 :(得分:1)

要匹配包括www在内的任何子域,您可以使用匹配所有内容的正则表达式模式。您的RewruteCondition当前仅匹配一个www子域,将其替换为通配符匹配RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]

您可以使用以下内容:

  RewriteEngine on
  RewriteCond %{REQUEST_URI} ^/forum
  RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]
  RewriteRule (.*) https://example.com%{REQUEST_URI} [L,R=301]

在测试此新的重定向之前,请确保清除浏览器缓存。