1

我目前正在使用 ht.access 在我的域名上强制使用 WWW 前缀....

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

我想保留它,但对于我的子域,它显示为

www.subdomain.mydomain.com 但我想要它没有 www。在我的子域....

目前: http ://www.subdomain.mydomain.com 想要: http ://subdomain.mydomain.com

对该代码或任何其他 .htaccess 代码是否有任何已知的良好编辑来完成我需要的操作?

4

1 回答 1

1

您必须要么明确说明域名,要么只假设特定数量的 TLD(否则会变得更难)。

明确的域:

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.domain\.com [NC]
RewriteCond %{HTTPS}s::%1 ^(on(s)|offs)::(.*)$
RewriteRule ^ http%2://%3.domain.com%{REQUEST_URI} [R=301,L]

或只有 1 个顶级域名:

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\.([^.]+\.[^.]{2,4})$ [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+\.[^.]{2,4})$ [NC]
RewriteCond %{HTTPS}s::%1 ^(on(s)|offs)::(.*)$
RewriteRule ^ http%2://%3.domain.com%{REQUEST_URI} [R=301,L]
于 2013-04-24T04:03:36.323 回答