1

如何构造我的 .htaccess 文件,以便将 www 添加到地址 mysite.com 的开头,但不添加 www。到其他子域的开头,例如 test.mysite.com?我的 .htaccess 文件目前看起来像这样:

Options -Multiviews
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php
4

2 回答 2

2

就像是:

RewriteCond %{HTTP_HOST} ^mysite.com

代替

RewriteCond %{HTTP_HOST} !^www\.
于 2012-06-20T18:02:05.550 回答
0

我只是不知道只获取域命名字符的该死规则,所以我会尝试这个,但它可能会在某些主题上失败:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^[a-zA-Z0-9\-]+(\.[a-z]{2,4})+$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php

这将强制所有以一个单词和一个 TLD 开头的域被转发到 www.samedomain.tld 但子域不会被击中......

于 2012-06-20T18:02:32.903 回答