我正在使用我在StackOverflow上找到的一些.htaccess代码将非www域重定向到他们的www对应物:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteCond %{HTTP_HOST} (.+)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php/$1
</IfModule>
问题是,这也适用于我们本地开发服务器上的域,并将http://test/
重定向到http://www.test/
。这没用,因为我们的开发服务器上不存在域www.test
。这意味着当网站上线时,需要修改用于开发中的站点的.htaccess文件。
是否有一种简单的方法来添加一行来检查域名是否至少有一个点?如果它包含一个点,请继续添加www.
。如果没有,请停止。
答案 0 :(得分:0)
您可以在RewriteCond
之前添加另一个RewriteRule
来排除您的测试服务器:
RewriteCond %{HTTP_HOST} !^test$
我认为明确排除比这个点数更好。
编辑:以下是基于点的版本:
RewriteCond %{HTTP_HOST} !\.