非www .htaccess重定向 - 忽略其他子域

Mil*_*ike 7 apache .htaccess mod-rewrite redirect

我有一个.htaccess重定向"非www",如下所示:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这是工作.但是,除了www之外,我还有一些子域名.如果我打电话给http://shop.example.com,它会将我重定向到:http: //www.shop.example.com

我不想将子域写入.htaccess文件,它应该自动工作,只是忽略除了www和''之外的任何东西:

if subdomain =='' -> redirect to www.HTTP_HOST....
elseif subdomain !='' && subdomain !='www' -> do nothing.
Run Code Online (Sandbox Code Playgroud)

谢谢!

Gum*_*mbo 10

试试这条规则:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)

并且还要考虑HTTPS:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)


小智 1

尝试这个:

Options +FollowSymlinks

RewriteEngine On

RewriteCond %{HTTP_HOST}//s%{HTTPS} ^www\.(.*)//((s)on|s.*)$ [NC]

RewriteRule ^ http%3://%1%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)

刚刚用internetagentur.drupal-webmaster.de (子域)尝试过- 主要是没有 www。