如果不是子域,请更改为www

时间:2014-12-01 06:58:32

标签: php regex apache .htaccess mod-rewrite

剧情:我实际上喜欢www网址,但与www.whatever.example.com这样的子网域一起使用时却没有。首先我在我的托管帐户上使用了两个域,所以我添加了一个htaccess重写,如下面的代码。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

动机:过了一段时间后我意识到我需要一个子域名也指向我的主机帐户。但我不想要像www.whatever.example.com那样丑陋的子域名,但同时我想将example.com个用户重定向到www.example.com。 我无法弄清楚如何做到这一点。这里的任何人。

2 个答案:

答案 0 :(得分:3)

您可以使用此规则仅定位您的主域名:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

或者,将任何子网址定位到3个级别' deep':

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} !^[^.]+\.[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

答案 1 :(得分:1)

使用.htaccess尝试此操作, Ref

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]