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]
答案 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]
在测试此新的重定向之前,请确保清除浏览器缓存。